From ef19de818030ed0a7633cdee8fefed444cc111c0 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 13 Jun 2024 07:36:57 +0700 Subject: [PATCH] Create ddl persiapan operasi Pembuatan struktur data persiapan operasi --- .../enums/StatusBerkasOperasi.java | 10 +++ .../medifirst2000/entities/BerkasOperasi.java | 47 ++++++++++++ .../entities/DetailPersiapanOperasi.java | 52 ++++++++++++++ .../entities/PersiapanOperasi.java | 71 +++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 jasamedika-core/src/main/java/com/jasamedika/medifirst2000/enums/StatusBerkasOperasi.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/BerkasOperasi.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailPersiapanOperasi.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PersiapanOperasi.java diff --git a/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/enums/StatusBerkasOperasi.java b/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/enums/StatusBerkasOperasi.java new file mode 100644 index 00000000..6bfeac9e --- /dev/null +++ b/jasamedika-core/src/main/java/com/jasamedika/medifirst2000/enums/StatusBerkasOperasi.java @@ -0,0 +1,10 @@ +package com.jasamedika.medifirst2000.enums; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 12/06/2024 + */ +public enum StatusBerkasOperasi { + LENGKAP, BELUM_LENGKAP, TIDAK_ADA +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/BerkasOperasi.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/BerkasOperasi.java new file mode 100644 index 00000000..a011a154 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/BerkasOperasi.java @@ -0,0 +1,47 @@ +package com.jasamedika.medifirst2000.entities; + +import com.jasamedika.medifirst2000.base.BaseActive; +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; +import org.hibernate.validator.constraints.NotBlank; + +import javax.persistence.*; +import javax.validation.constraints.Size; + +import java.io.Serializable; + +import static javax.persistence.FetchType.LAZY; +import static javax.persistence.GenerationType.SEQUENCE; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 12/06/2024 + */ +@Getter +@Setter +@Entity +@Table(name = "berkasoperasi_m", schema = "public") +public class BerkasOperasi extends BaseActive implements Serializable { + + @Id + @GeneratedValue(strategy = SEQUENCE, generator = "sg_berkasoperasi") + @SequenceGenerator(name = "sg_berkasoperasi", schema = "public", sequenceName = "public.berkasoperasi_m_seq", allocationSize = 1) + @Column(name = "id", columnDefinition = "bigint default nextval('public.berkasoperasi_m_seq'::regclass)") + protected Long id; + + @Column(name = "berkasoperasi", length = 150, unique = true, nullable = false) + @Size(max = 150, message = "Berkas operasi maksimal {max} karakter") + @NotBlank(message = "Berkas operasi tidak boleh kosong") + @Caption("Berkas Operasi") + private String berkasOperasi; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "kelompokuserfk") + @Caption(value = "Kelompok User") + private KelompokUser kelompokUser; + + @Column(name = "kelompokuserfk", insertable = false, updatable = false) + private Integer kelompokUserId; +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailPersiapanOperasi.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailPersiapanOperasi.java new file mode 100644 index 00000000..aa6e9d1b --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailPersiapanOperasi.java @@ -0,0 +1,52 @@ +package com.jasamedika.medifirst2000.entities; + +import com.jasamedika.medifirst2000.base.BaseTransaction; +import com.jasamedika.medifirst2000.enums.StatusBerkasOperasi; +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +import static javax.persistence.EnumType.STRING; +import static javax.persistence.FetchType.LAZY; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 12/06/2024 + */ +@Getter +@Setter +@Entity +@Table(name = "detailpersiapanoperasi_t") +public class DetailPersiapanOperasi extends BaseTransaction implements Serializable { + private static final long serialVersionUID = -6849730642670346L; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "berkasoperasifk") + @NotNull(message = "Berkas operasi tidak boleh kosong") + @Caption(value = "Berkas Operasi") + private BerkasOperasi berkasOperasi; + + @Column(name = "berkasoperasifk", insertable = false, updatable = false, nullable = false) + private Long berkasOperasiId; + + @Column(name = "statusberkas", length = 50) + @Enumerated(STRING) + private StatusBerkasOperasi statusBerkas; + + @Column(name = "keterangan", length = 500) + private String keterangan; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "persiapanoperasifk") + @NotNull(message = "Persiapan operasi tidak boleh kosong") + @Caption(value = "Persiapan Operasi") + private PersiapanOperasi persiapanOperasi; + + @Column(name = "persiapanoperasifk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false) + private String persiapanOperasiId; +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PersiapanOperasi.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PersiapanOperasi.java new file mode 100644 index 00000000..f4790a09 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PersiapanOperasi.java @@ -0,0 +1,71 @@ +package com.jasamedika.medifirst2000.entities; + +import com.jasamedika.medifirst2000.base.BaseTransaction; +import com.jasamedika.medifirst2000.helper.Caption; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; +import java.util.Set; + +import static javax.persistence.FetchType.EAGER; +import static javax.persistence.FetchType.LAZY; +import static javax.persistence.TemporalType.DATE; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 12/06/2024 + */ +@Getter +@Setter +@Entity +@Table(name = "persiapanoperasi_t") +public class PersiapanOperasi extends BaseTransaction implements Serializable { + private static final long serialVersionUID = 4059228362398801137L; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "nocmfk") + @NotNull(message = "Pasien tidak boleh kosong") + @Caption(value = "Pasien") + private Pasien pasien; + + @Column(name = "nocmfk", insertable = false, updatable = false, nullable = false) + private Integer pasienId; + + @ElementCollection(fetch = EAGER) + @CollectionTable(name = "diagnosispersiapan_t", joinColumns = @JoinColumn(name = "persiapantindakanoperasifk")) + @Column(name = "diagnosis", length = 150) + private Set diagnosa; + + @ElementCollection(fetch = EAGER) + @CollectionTable(name = "jenistindakanpersiapan_t", joinColumns = @JoinColumn(name = "persiapantindakanoperasifk")) + @Column(name = "jenistindakan", length = 150) + private Set jenisTindakan; + + @Column(name = "tglrencanatindakan", nullable = false) + @NotNull(message = "Tanggal rencana tindakan tidak boleh kosong") + @Temporal(DATE) + private Date tanggalRencanaTindakan; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "dpjpfk") + @NotNull(message = "DPJP tidak boleh kosong") + @Caption(value = "DPJP") + private Pegawai dpjp; + + @Column(name = "dpjpfk", insertable = false, updatable = false, nullable = false) + private Integer dpjpId; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "ruanganfk") + @NotNull(message = "Ruangan tidak boleh kosong") + @Caption(value = "Ruangan") + private Ruangan ruangan; + + @Column(name = "ruanganfk", insertable = false, updatable = false, nullable = false) + private Integer ruanganId; +}