Skip to main content

HS.SDA3.Diagnosis

serial class HS.SDA3.Diagnosis extends HS.SDA3.SuperClass

HS.SDA3.Diagnosis corresponds to the CDA Hospital Admission Diagnosis section and the Discharge Diagnosis section.

Property Inventory

Method Inventory

Properties

property ActionCode as %String;
D = Delete
I = Inactivate All (set Status.Code="I",Description="Inactive")
C = Clear All
Any other value = Add or Update
See the annotation on the superclass property for more information on how
ActionCode is used.

HL7ToSDA3:
Two double quotes ("") in DG1-1 will be parsed as ActionCode="I", and four
double quotes ("""") as "C". In either case the rest of the segment is
ignored. HL7ToSDA3 will also parse values of "A", "D", and "U" (for "Add",
"Delete", and "Update") from DG1-21, though "D" is the only value that is
meaningful to HealthShare. Any other non-null value will be parsed as "A".

HL7: DG1-1 : SetIDDG1
HL7: DG1-21 : DiagnosisActionCode
VIEWERLIB: Not stored
Property methods: ActionCodeDisplayToLogical(), ActionCodeGet(), ActionCodeIsValid(), ActionCodeLogicalToDisplay(), ActionCodeLogicalToOdbc(), ActionCodeNormalize(), ActionCodeSet()
property ActionScope as %String;
"ADMISSION" = Inactivate/Clear all Diagnoses with DiagnosisType.Code="A"
"DISCHARGE" = Inactivate/Clear all Diagnoses with DiagnosisType.Code'="A"
See the annotation on the superclass property for more information on how
ActionScope is used.

VIEWERLIB: Not stored
Property methods: ActionScopeDisplayToLogical(), ActionScopeGet(), ActionScopeIsValid(), ActionScopeLogicalToDisplay(), ActionScopeLogicalToOdbc(), ActionScopeNormalize(), ActionScopeSet()
property DiagnosingClinician as HS.SDA3.CodeTableDetail.CareProvider;
Clinician who made the diagnosis

HL7ToSDA3:
Though DG1-16 is a repeating field, HL7ToSDA3 will only parse the first
non-null instance.

HL7: DG1-16 : DiagnosingClinician
SDATableName=CareProvider, ViewerClass=User.HS.CTCareProv
VIEWERLIB: User.HS.MRDiagnos(MRDIADocCodeDR)

.Code
HL7: DG1-16.1 : DiagnosingClinician.IDNumber
VIEWERLIB: User.HS.CTCareProv(CTPCPCode)
.Description
HL7ToSDA3:
The name is formatted as "[Family], [Given]" to make the Description.
HL7: DG1-16.2.1 : DiagnosingClinician.FamilyName.Surname
HL7: DG1-16.3 : DiagnosingClinician.GivenName
VIEWERLIB: User.HS.CTCareProv(CTPCPDesc)
.SDACodingStandard
HL7: DG1-16.9 : DiagnosingClinician.AssigningAuthority
VIEWERLIB: Not stored
.Name.FamilyName
HL7: DG1-16.2.1 : DiagnosingClinician.FamilyName.Surname
VIEWERLIB: User.HS.CTCareProv(CTPCPSurname)
.Name.GivenName
HL7: DG1-16.3 : DiagnosingClinician.GivenName
VIEWERLIB: User.HS.CTCareProv(CTPCPFirstName)
.Name.MiddleName
HL7: DG1-16.4 : DiagnosingClinician.SecondandFurtherGivenName
VIEWERLIB: User.HS.CTCareProv(CTPCPOtherName)
.Name.NamePrefix
HL7: DG1-16.6 : DiagnosingClinician.Prefix
VIEWERLIB: User.HS.CTCareProv(CTPCPTitle)
.Name.NameSuffix
HL7: DG1-16.5 : DiagnosingClinician.Suffix
VIEWERLIB: User.HS.CTCareProv(CTPCPTextTwo)
.Name.ProfessionalSuffix
HL7: DG1-16.21 : DiagnosingClinician.ProfessionalSuffix
VIEWERLIB: User.HS.CTCareProv(CTPCPTextThree)
Property methods: DiagnosingClinicianGet(), DiagnosingClinicianGetObject(), DiagnosingClinicianGetObjectId(), DiagnosingClinicianGetSwizzled(), DiagnosingClinicianIsEmpty(), DiagnosingClinicianIsValid(), DiagnosingClinicianNewObject(), DiagnosingClinicianSet(), DiagnosingClinicianSetObject(), DiagnosingClinicianSetObjectId(), DiagnosingClinicianUnSwizzle()
property Diagnosis as HS.SDA3.CodeTableDetail.Diagnosis;
The diagnosis code or description

HL7ToSDA3:
DG1-3 will only be parsed if subfield 1 or 2 is not null. If they are and
DG1-4 is not null, then it will be parsed as the Diagnosis Code. In this
case, HL7ToSDA3 will not set the Description.

Streamlet cache:
In the OnValidate method of the Streamlet class, if the SDA has no Diagnosis
CodeTableDetail, an error will be logged and the Streamlet will not be saved.

HL7: DG1-3 : DiagnosisCodeDG1
HL7: DG1-4 : DiagnosisDescription
SDATableName=Diagnosis, ViewerClass=User.HS.MRCICDDx
VIEWERLIB: User.HS.MRDiagnos(MRDIAICDCodeDR)

.Code
HL7ToSDA3:
DG1-4 will only be used if DG1-3.1 and .2 are null.
HL7: DG1-3.1 : DiagnosisCodeDG1.Identifier
HL7: DG1-4 : DiagnosisDescription
VIEWERLIB: User.HS.MRCICDDx(MRCIDCode)
.Description
HL7: DG1-3.2 : DiagnosisCodeDG1.Text
VIEWERLIB: User.HS.MRCICDDx(MRCIDDesc)
.SDACodingStandard
HL7: DG1-3.3 : DiagnosisCodeDG1.NameofCodingSystem
VIEWERLIB: Not stored
.PriorCodes
HL7ToSDA3:
If subfield 4 or 5 is not null, then a PriorCode will be parsed to the SDA
with Code coming from subfield 4, Description from 5, and CodingSystem from
6. The Type will be parsed as "A".
HL7: DG1-3.4 : DiagnosisCodeDG1.AlternateIdentifier
HL7: DG1-3.5 : DiagnosisCodeDG1.AlternateText
HL7: DG1-3.6 : DiagnosisCodeDG1.NameofAlternateCodingSystem
VIEWERLIB: Not stored
.OriginalText
HL7: DG1-3.9 : DiagnosisCodeDG1.OriginalText
VIEWERLIB: Not stored
Property methods: DiagnosisGet(), DiagnosisGetObject(), DiagnosisGetObjectId(), DiagnosisGetSwizzled(), DiagnosisIsEmpty(), DiagnosisIsValid(), DiagnosisNewObject(), DiagnosisPriorityDisplayToLogical(), DiagnosisPriorityGet(), DiagnosisPriorityIsValid(), DiagnosisPriorityLogicalToDisplay(), DiagnosisPriorityLogicalToOdbc(), DiagnosisPriorityNormalize(), DiagnosisPrioritySet(), DiagnosisSet(), DiagnosisSetObject(), DiagnosisSetObjectId(), DiagnosisTypeGet(), DiagnosisTypeGetObject(), DiagnosisTypeGetObjectId(), DiagnosisTypeGetSwizzled(), DiagnosisTypeIsEmpty(), DiagnosisTypeIsValid(), DiagnosisTypeNewObject(), DiagnosisTypeSet(), DiagnosisTypeSetObject(), DiagnosisTypeSetObjectId(), DiagnosisTypeUnSwizzle(), DiagnosisUnSwizzle()
property DiagnosisPriority as %String;
The priority of the diagnosis code
The value 1 means that this is the primary diagnosis. Values 2-99 convey ranked secondary diagnoses.

HL7: DG1-15 : DiagnosisPriority
VIEWERLIB: Not stored
Property methods: DiagnosisPriorityDisplayToLogical(), DiagnosisPriorityGet(), DiagnosisPriorityIsValid(), DiagnosisPriorityLogicalToDisplay(), DiagnosisPriorityLogicalToOdbc(), DiagnosisPriorityNormalize(), DiagnosisPrioritySet()
property DiagnosisType as HS.SDA3.CodeTableDetail.DiagnosisType;
The type of diagnosis (e.g. admitting, working, final, discharge)

HL7ToSDA3:
DG1-6 is used as the DiagnosisType Code. HL7ToSDA3 does not set the
Description.

Streamlet cache:
See the ActionScope property.

Viewer cache:
Rather than being a property of MRDiagnos directly, the MRCDiagnosType is a
property of MRDiagType, which is a child of MRDiagnos. An MRDiagnos can only
have one MRDiagType.

HL7: DG1-6 : DiagnosisType
SDATableName=DiagnosisType, ViewerClass=User.HS.MRCDiagnosType
VIEWERLIB: User.HS.MRDiagnos(ChildMRDiagType)->User.HS.MRDiagType(TYPMRCDiagTyp)
Property methods: DiagnosisTypeGet(), DiagnosisTypeGetObject(), DiagnosisTypeGetObjectId(), DiagnosisTypeGetSwizzled(), DiagnosisTypeIsEmpty(), DiagnosisTypeIsValid(), DiagnosisTypeNewObject(), DiagnosisTypeSet(), DiagnosisTypeSetObject(), DiagnosisTypeSetObjectId(), DiagnosisTypeUnSwizzle()
property EnteredAt as HS.SDA3.CodeTableDetail.Organization;
HL7ToSDA3:
MSH-4.1 is parsed as the EnteredAt Code. HL7ToSDA3 does not set the
Description.

HL7: MSH-4.1 : SendingFacility.NamespaceID
SDATableName=Organization, ViewerClass=User.HS.CTHospital
VIEWERLIB: User.HS.MRDiagnos(MRDIAUpdateHospitalDR)
Property methods: EnteredAtGet(), EnteredAtGetObject(), EnteredAtGetObjectId(), EnteredAtGetSwizzled(), EnteredAtIsEmpty(), EnteredAtIsValid(), EnteredAtNewObject(), EnteredAtSet(), EnteredAtSetObject(), EnteredAtSetObjectId(), EnteredAtUnSwizzle()
property EnteredBy as HS.SDA3.CodeTableDetail.User;
SDATableName=User, ViewerClass=User.HS.SSUser
VIEWERLIB: User.HS.MRDiagnos(MRDIAUserCreatedDR)
Property methods: EnteredByGet(), EnteredByGetObject(), EnteredByGetObjectId(), EnteredByGetSwizzled(), EnteredByIsEmpty(), EnteredByIsValid(), EnteredByNewObject(), EnteredBySet(), EnteredBySetObject(), EnteredBySetObjectId(), EnteredByUnSwizzle()
property EnteredOn as HS.SDA3.TimeStamp;
HL7: DG1-5.1 : DiagnosisDateTime.Time
VIEWERLIB: User.HS.MRDiagnos(MRDIADate) + User.HS.MRDiagnos(MRDIATime)
VIEWERLIB: User.HS.MRDiagnos(MRDIAUpdateDate) + User.HS.MRDiagnos(MRDIAUpdateTime)
Property methods: EnteredOnDisplayToLogical(), EnteredOnGet(), EnteredOnIsValid(), EnteredOnLogicalToDisplay(), EnteredOnLogicalToTimeStamp(), EnteredOnLogicalToXSD(), EnteredOnNormalize(), EnteredOnOdbcToLogical(), EnteredOnSet(), EnteredOnXSDToLogical()
property Extension as HS.Local.SDA3.DiagnosisExtension;
Property methods: ExtensionGet(), ExtensionGetObject(), ExtensionGetObjectId(), ExtensionGetSwizzled(), ExtensionIsEmpty(), ExtensionIsValid(), ExtensionNewObject(), ExtensionSet(), ExtensionSetObject(), ExtensionSetObjectId(), ExtensionUnSwizzle()
property ExternalId as %String (MAXLEN = 220);
VIEWERLIB: User.HS.MRDiagnos(MRDIAExternalId)
Property methods: ExternalIdDisplayToLogical(), ExternalIdGet(), ExternalIdIsValid(), ExternalIdLogicalToDisplay(), ExternalIdLogicalToOdbc(), ExternalIdNormalize(), ExternalIdSet()
property IdentificationTime as HS.SDA3.TimeStamp;
When the diagnosis was made

VIEWERLIB: User.HS.MRDiagnos(MRDIADateDiagnosisIdentif) + User.HS.MRDiagnos(MRDIATimeDiagnosisIdentif)
Property methods: IdentificationTimeDisplayToLogical(), IdentificationTimeGet(), IdentificationTimeIsValid(), IdentificationTimeLogicalToDisplay(), IdentificationTimeLogicalToTimeStamp(), IdentificationTimeLogicalToXSD(), IdentificationTimeNormalize(), IdentificationTimeOdbcToLogical(), IdentificationTimeSet(), IdentificationTimeXSDToLogical()
property LinkedDiagnosisCode as %String;
A related (e.g. secondary) diagnosis

Viewer cache:
If another Diagnosis exists in the same Encounter (or no Encounter if this
Diagnosis is Encounter-less) with Diagnosis.Code matching this LinkedDiagnosisCode,
MRDIAMRDIADR will be set to a reference to that Diagnosis (as a User.HS.MRDiagnos).
Note that the other Diagnosis must already be saved to the viewer cache for the
link to be made.

VIEWERLIB: User.HS.MRDiagnos(MRDIAMRDIADR)
Property methods: LinkedDiagnosisCodeDisplayToLogical(), LinkedDiagnosisCodeGet(), LinkedDiagnosisCodeIsValid(), LinkedDiagnosisCodeLogicalToDisplay(), LinkedDiagnosisCodeLogicalToOdbc(), LinkedDiagnosisCodeNormalize(), LinkedDiagnosisCodeSet()
property LinkedExternalId as %String (MAXLEN = 220);
A related (e.g. secondary) diagnosis External ID

VIEWERLIB: User.HS.MRDiagnos(MRDIALinkedExternalId)
Property methods: LinkedExternalIdDisplayToLogical(), LinkedExternalIdGet(), LinkedExternalIdIsValid(), LinkedExternalIdLogicalToDisplay(), LinkedExternalIdLogicalToOdbc(), LinkedExternalIdNormalize(), LinkedExternalIdSet()
property OnsetTime as HS.SDA3.TimeStamp;
When the diagnosed condition began

VIEWERLIB: User.HS.MRDiagnos(MRDIAOnsetDate) + User.HS.MRDiagnos(MRDIAOnsetTime)
Property methods: OnsetTimeDisplayToLogical(), OnsetTimeGet(), OnsetTimeIsValid(), OnsetTimeLogicalToDisplay(), OnsetTimeLogicalToTimeStamp(), OnsetTimeLogicalToXSD(), OnsetTimeNormalize(), OnsetTimeOdbcToLogical(), OnsetTimeSet(), OnsetTimeXSDToLogical()
property PresentOnAdmission as HS.SDA3.CodeTableDetail.PresentOnAdmission;
Used to capture whether a diagnosis was present at time of a patient's admission.
Property methods: PresentOnAdmissionGet(), PresentOnAdmissionGetObject(), PresentOnAdmissionGetObjectId(), PresentOnAdmissionGetSwizzled(), PresentOnAdmissionIsEmpty(), PresentOnAdmissionIsValid(), PresentOnAdmissionNewObject(), PresentOnAdmissionSet(), PresentOnAdmissionSetObject(), PresentOnAdmissionSetObjectId(), PresentOnAdmissionUnSwizzle()
HL7ToSDA3:
For any Diagnosis parsed from a DG1 segment, Status will not actually be
parsed from any field of the segment, but rather the Code will always be
parsed as "A" and the Description as "Active".

Streamlet cache:
In the OnValidate method of the Streamlet class, if the SDA has no Status,
a Status with Code="A" and Description="Active" will be defaulted in.

SDATableName=DiagnosisStatus, ViewerClass=User.HS.MRCDiagnosStatus
VIEWERLIB: User.HS.MRDiagnos(MRDIADiagStatDR)
Property methods: StatusGet(), StatusGetObject(), StatusGetObjectId(), StatusGetSwizzled(), StatusIsEmpty(), StatusIsValid(), StatusNewObject(), StatusSet(), StatusSetObject(), StatusSetObjectId(), StatusUnSwizzle()
property VerificationStatus as HS.SDA3.CodeTableDetail.ConditionVerificationStatus;
The verification status to support the clinical status of the condition. VIEWERLIB: Not stored
Property methods: VerificationStatusGet(), VerificationStatusGetObject(), VerificationStatusGetObjectId(), VerificationStatusGetSwizzled(), VerificationStatusIsEmpty(), VerificationStatusIsValid(), VerificationStatusNewObject(), VerificationStatusSet(), VerificationStatusSetObject(), VerificationStatusSetObjectId(), VerificationStatusUnSwizzle()

Methods

classmethod EndXMLList()
Inherited description: Utility Method used to when exporting to a container stream or string Subclasses may override if the container property isn't the simple plural (ex: Allergies)
classmethod StartXMLList()
Inherited description: Utility Method used to when exporting to a container stream or string Subclasses may override if the container property isn't the simple plural (ex: Allergies)

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab