Refine patient profile rules and constraints for name elements

This commit is contained in:
Fahim Hossain 2025-09-28 14:34:45 +06:00
parent 757bc0e68f
commit 3d6eb877ec

View File

@ -9,29 +9,30 @@ Description: "Profile of Patient Bangladesh Standard"
// ----- Begin rules: // ----- Begin rules:
// Require at least one value inside the name element // Require two names total
* name 2..* * name 2..*
// === 1. Declare slicing on name by 'use' ===
// Declare slicing on name by use
* name ^slicing.discriminator.type = #value * name ^slicing.discriminator.type = #value
* name ^slicing.discriminator.path = "system" * name ^slicing.discriminator.path = "use"
* name ^slicing.rules = #open * name ^slicing.rules = #open
* name ^slicing.ordered = false
* name ^slicing.description = "Slice name by use (official for English, usual for Bangla)" * name ^slicing.description = "Slice name by use (official for English, usual for Bangla)"
// === 2. Define slices === // Define slices
* name contains * name contains
nameEnglish 1..1 MS and // slice alias for English name nameEnglish 1..1 MS and
nameBangla 1..1 MS // slice alias for Bangla name nameBangla 1..1 MS
// === 3. Constrain English (official) name === // English (official)
* name[nameEnglish].use = #en (exactly) * name[nameEnglish].use = #official
* name[nameEnglish].given 0..* * name[nameEnglish].given 0..*
* name[nameEnglish].family 0..1 * name[nameEnglish].family 0..1
* name[nameEnglish] ^short = "Legal name (English/Romanized)" * name[nameEnglish] ^short = "Legal name (English/Romanized)"
* name[nameEnglish] ^definition = "Official name as registered in government documents." * name[nameEnglish] ^definition = "Official name as registered in government documents."
// Bangla (usual)
// === 4. Constrain Bangla name === * name[nameBangla].use = #usual
* name[nameBangla].use = #bn (exactly)
* name[nameBangla].given 0..* * name[nameBangla].given 0..*
* name[nameBangla].family 0..1 * name[nameBangla].family 0..1
* name[nameBangla] ^short = "নাম (বাংলা)" * name[nameBangla] ^short = "নাম (বাংলা)"
@ -56,7 +57,7 @@ Description: "Profile of Patient Bangladesh Standard"
* identifier[NID].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" * identifier[NID].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203"
* identifier[NID].type from BangladeshIdentifierTypeVS (extensible) * identifier[NID].type from BangladeshIdentifierTypeVS (extensible)
* identifier[NID].type.text = "Organization identifier" * identifier[NID].type.text = "Organization identifier"
* identifier[NID].value = "Personal identifier National ID" // * identifier[NID].value = "Personal identifier National ID"
// Then in your profile: // Then in your profile:
// * identifier.type from BangladeshIdentifierTypeVS (extensible) // * identifier.type from BangladeshIdentifierTypeVS (extensible)
@ -66,7 +67,7 @@ Description: "Profile of Patient Bangladesh Standard"
* identifier[BRN].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" * identifier[BRN].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203"
* identifier[BRN].type from BangladeshIdentifierTypeVS (extensible) * identifier[BRN].type from BangladeshIdentifierTypeVS (extensible)
* identifier[BRN].type.text = "Organization identifier" * identifier[BRN].type.text = "Organization identifier"
* identifier[BRN].value = "Personal identifier Birth Registration" // * identifier[BRN].value = "Personal identifier Birth Registration"
* identifier[UID].system = "http://dghs.gov.bd/identifier/uid" * identifier[UID].system = "http://dghs.gov.bd/identifier/uid"
@ -74,7 +75,7 @@ Description: "Profile of Patient Bangladesh Standard"
* identifier[UID].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203" * identifier[UID].type.coding.system = "http://terminology.hl7.org/CodeSystem/v2-0203"
* identifier[UID].type from BangladeshIdentifierTypeVS (extensible) * identifier[UID].type from BangladeshIdentifierTypeVS (extensible)
* identifier[UID].type.text = "Organization identifier" * identifier[UID].type.text = "Organization identifier"
* identifier[UID].value = "Personal identifier" // * identifier[UID].value = "Personal identifier"
// Mark elements as MustSupport // Mark elements as MustSupport