diff --git a/docs/diagrams/diagram.png b/docs/diagrams/diagram.png new file mode 100644 index 0000000..737a4d8 Binary files /dev/null and b/docs/diagrams/diagram.png differ diff --git a/docs/diagrams/diagram.svg b/docs/diagrams/diagram.svg new file mode 100644 index 0000000..27890f7 --- /dev/null +++ b/docs/diagrams/diagram.svg @@ -0,0 +1 @@ +UserHISv3 VerifikasiDICOM ISO APIPACS ServerISO BuilderUserHISv3 VerifikasiDICOM ISO APIPACS ServerISO BuilderClick "Make ISO"Request ISO by accession numberFind and retrieve DICOM studyReturn DICOM filesBuild ISO from DICOM filesISO file readyReturn ISO downloadUser receives ISO file \ No newline at end of file diff --git a/docs/diagrams/diagram.txt b/docs/diagrams/diagram.txt new file mode 100644 index 0000000..e73fb70 --- /dev/null +++ b/docs/diagrams/diagram.txt @@ -0,0 +1,32 @@ + ┌─┐ + ║"│ + └┬┘ + ┌┼┐ + │ ┌────────────────┐ ┌─────────────┐ ┌───────────┐ ┌───────────┐ + ┌┴┐ │HISv3 Verifikasi│ │DICOM ISO API│ │PACS Server│ │ISO Builder│ + User └────────┬───────┘ └──────┬──────┘ └─────┬─────┘ └─────┬─────┘ + │ Click "Make ISO" │ │ │ │ + │──────────────────────>│ │ │ │ + │ │ │ │ │ + │ │Request ISO by accession number │ │ │ + │ │───────────────────────────────>│ │ │ + │ │ │ │ │ + │ │ │Find and retrieve DICOM study │ │ + │ │ │─────────────────────────────>│ │ + │ │ │ │ │ + │ │ │ Return DICOM files │ │ + │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ + │ │ │ │ │ + │ │ │ Build ISO from DICOM files │ + │ │ │────────────────────────────────────────────────────>│ + │ │ │ │ │ + │ │ │ ISO file ready │ + │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ + │ │ │ │ │ + │ │ Return ISO download │ │ │ + │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ + │ │ │ │ │ + │User receives ISO file │ │ │ │ + │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ diff --git a/docs/diagrams/make-iso-flow.puml b/docs/diagrams/make-iso-flow.puml new file mode 100644 index 0000000..2a11de3 --- /dev/null +++ b/docs/diagrams/make-iso-flow.puml @@ -0,0 +1,27 @@ +@startuml +hide footbox +skinparam shadowing false +skinparam sequenceMessageAlign center +skinparam responseMessageBelowArrow true +skinparam ArrowColor #444444 +skinparam ParticipantBorderColor #666666 +skinparam ParticipantBackgroundColor #F8F8F8 +skinparam ActorBorderColor #666666 +skinparam ActorBackgroundColor #F8F8F8 + +actor User +participant "HISv3 Verifikasi" as HIS +participant "DICOM ISO API" as API +participant "PACS Server" as PACS +participant "ISO Builder" as ISO + +User -> HIS: Click "Make ISO" +HIS -> API: Request ISO by accession number +API -> PACS: Find and retrieve DICOM study +PACS --> API: Return DICOM files +API -> ISO: Build ISO from DICOM files +ISO --> API: ISO file ready +API --> HIS: Return ISO download +HIS --> User: User receives ISO file + +@enduml diff --git a/docs/flow-make-iso.md b/docs/flow-make-iso.md new file mode 100644 index 0000000..b6cd2c5 --- /dev/null +++ b/docs/flow-make-iso.md @@ -0,0 +1,50 @@ +# Make ISO flow + +This is the main flow when a user creates an ISO from HISv3. + +The diagram below follows the current Go service in this repo. In short, HISv3 asks the DICOM ISO service for one study, the service takes the study from PACS, builds an ISO file, then returns that file back for download. + +## Diagram + +```plantuml +@startuml +hide footbox +skinparam shadowing false +skinparam sequenceMessageAlign center +skinparam responseMessageBelowArrow true +skinparam ArrowColor #444444 +skinparam ParticipantBorderColor #666666 +skinparam ParticipantBackgroundColor #F8F8F8 +skinparam ActorBorderColor #666666 +skinparam ActorBackgroundColor #F8F8F8 + +actor User +participant "HISv3 Verifikasi" as HIS +participant "DICOM ISO API" as API +participant "PACS Server" as PACS +participant "ISO Builder" as ISO + +User -> HIS: Click "Make ISO" +HIS -> API: Request ISO by accession number +API -> PACS: Find and retrieve DICOM study +PACS --> API: Return DICOM files +API -> ISO: Build ISO from DICOM files +ISO --> API: ISO file ready +API --> HIS: Return ISO download +HIS --> User: User receives ISO file + +@enduml +``` + +## Brief explanation + +When the user clicks **Make ISO** in HISv3, HISv3 sends a request to the DICOM ISO service. + +The DICOM ISO service then asks PACS for the study data that matches the accession number. After the study files are received, the service prepares them into one ISO file. + +When the ISO file is ready, the service sends it back as a download response. From the user side, the process stays simple: click **Make ISO**, wait a moment, then download the ISO file. + +## Note + +This is the basic user-facing flow. +It leaves out lower-level details so the diagram stays easy to read.