- HLOPRS2 ;ALB/CJM-HL7 - Developer API's for parsing messages(continued) ;05/12/2009
- ;;1.6;HEALTH LEVEL SEVEN;**131,146**;Oct 13, 1995;Build 16
- ;
- GETTS(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets a segment value that is a timestamp in HL7 format and converts it
- ;to FileMan format. IF the segment value included the timezone, it is
- ;the timestamp is converted to local time.
- ;
- ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- ;
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to $$NEXTSEG^HLOPRS.
- ; FIELD - The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (pass-by-reference) The date/time in FileMan format.
- ; VALUE("PRECISION") Expected values are:
- ; "S" - second
- ; "M" - minute
- ; "H" - hour
- ; "D" - day
- ; "L" - month
- ; "Y" - year
- ; "" - precision not specified
- ; Note: FM does not allow greater precision than seconds, so this API will round off to the second.
- ;
- N TIME,PREC,VAR
- Q:'$G(FIELD)
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S:'$G(REP) REP=1
- S @VAR=1,TIME=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=2,PREC=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S VALUE=$$HL7TFM^XLFDT(TIME)
- I '$L(PREC) D
- .I $L(+TIME)>12 S PREC="S" Q
- .I $L(+TIME)>10 S PREC="M" Q
- .I $L(+TIME)>8 S PREC="H" Q
- .I $L(+TIME)>6 S PREC="D" Q
- .I $L(+TIME)>4 S PREC="L" Q
- .I $L(+TIME)=4 S PREC="Y" Q
- S VALUE("PRECISION")=PREC
- Q
- ;
- GETDT(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets a segment value that is a date in HL7 format and converts it to FileMan format.
- ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to $$NEXTSEG^HLOPRS.
- ; FIELD - The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - the occurrence# (optional, defaults to 1) For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (pass-by-reference) The date/time in FileMan format.
- ; VALUE("PRECISION") - Expected values are:
- ; "S" - second (not valid for DT)
- ; "M" - minute (not valid for DT)
- ; "H" - hour (not valid for DT)
- ; "D" - day
- ; "L" - month
- ; "Y" - year
- ; "" - not specified
- ;
- N TIME,PREC,VAR
- Q:'$G(FIELD)
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S:'$G(REP) REP=1
- S @VAR=1,TIME=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S VALUE=$$HL7TFM^XLFDT(TIME)
- S PREC=""
- D
- .I $L(+TIME)>12 S PREC="S" Q
- .I $L(+TIME)>10 S PREC="M" Q
- .I $L(+TIME)>8 S PREC="H" Q
- .I $L(+TIME)>6 S PREC="D" Q
- .I $L(+TIME)>4 S PREC="L" Q
- .I $L(+TIME)=4 S PREC="Y" Q
- S VALUE("PRECISION")=PREC
- Q
- ;
- GETCE(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an CE data type(Coded Element, HL7 Section Reference 2.9.8) from the specified field.
- ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "ID" - the identifier
- ; "TEXT" -
- ; "SYSTEM" - name of the code system
- ; "ALTERNATE ID" - alternate identifier
- ; "ALTERNATE TEXT"
- ; "ALTERNATE SYSTEM" - name of the alternate coding system
- ;
- N SUB,VAR
- Q:'$G(FIELD)
- S:'$G(REP) REP=1
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S @VAR=1,VALUE("ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=2,VALUE("TEXT")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=3,VALUE("SYSTEM")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=4,VALUE("ALTERNATE ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=5,VALUE("ALTERNATE TEXT")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=6,VALUE("ALTERNATE SYSTEM")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- Q
- ;
- GETHD(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an HD data type (Hierarchic Designator, HL7 Section Reference 2.9.21) from the specified field.
- ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "NAMESPACE ID"
- ; "UNIVERSAL ID"
- ; "UNIVERSAL ID TYPE"
- ;
- N SUB,VAR
- Q:'$G(FIELD)
- S:'$G(REP) REP=1
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S @VAR=1,VALUE("NAMESPACE ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=2,VALUE("UNIVERSAL ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=3,VALUE("UNIVERSAL ID TYPE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- Q
- ;
- GETCNE(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an CNE data type (Coded With No Exceptions, HL7 Section Reference 2.9.8) from the specified field.
- ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "ID" - the identifier
- ; "TEXT" -
- ; "SYSTEM" - name of the code system
- ; "ALTERNATE ID" - alternate identifier
- ; "ALTERNATE TEXT"
- ; "ALTERNATE SYSTEM" - name of the alternate coding system
- ; "SYSTEM VERSION" - version ID of the coding system
- ; "ALTERNATE SYSTEM VERSION" - version ID of the alternate coding system
- ; "ORIGINAL TEXT"
- ;
- D GETCODE^HLOPRS1(.SEG,.VALUE,.FIELD,.COMP,.REP)
- Q
- ;
- GETCWE(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an CWE data type (Coded With Exceptions, HL7 Section Reference 2.9.11) from the specified field.
- ;IF the component is specified, then the component is parsed for the data type rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "ID" - the identifier
- ; "TEXT" -
- ; "SYSTEM" - name of the code system
- ; "ALTERNATE ID" - alternate identifier
- ; "ALTERNATE TEXT"
- ; "ALTERNATE SYSTEM" - name of the alternate coding system
- ; "SYSTEM VERSION" - version ID of the coding system
- ; "ALTERNATE SYSTEM VERSION" - version ID of the alternate coding system
- ; "ORIGINAL TEXT"
- D GETCODE^HLOPRS1(.SEG,.VALUE,.FIELD,.COMP,.REP)
- Q
- ;
- GETAD(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an AD data type (Address, HL7 Section Reference 2.9.1) from the specified field. It can also be used to get the 1st 8 components of the XAD (Extended Address) data type.
- ;IF the component is specified, then the component is parsed for the address rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "STREET1" -street address
- ; "STREET2" - other designation
- ; "CITY"
- ; "STATE" - state or province
- ; "ZIP" - zip or postal code
- ; "COUNTRY"
- ; "TYPE" - address type
- ; "OTHER" - other geographic designation
- ;
- N SUB,VAR
- Q:'$G(FIELD)
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S:'$G(REP) REP=1
- S @VAR=1,VALUE("STREET1")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=2,VALUE("STREET2")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=3,VALUE("CITY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=4,VALUE("STATE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=5,VALUE("ZIP")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=6,VALUE("COUNTRY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=7,VALUE("TYPE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=8,VALUE("OTHER")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- Q
- ;
- ;**P146 START CJM
- GETXPN(SEG,VALUE,FIELD,COMP,REP) ;
- ;Gets an XPN data type (Extended Persons Name, HL7 Section Reference 2.9.1) from the specified field.
- ;IF the component is specified, then the component is parsed for the address rather than at the higher field level.
- ;
- ;Input:
- ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- ; FIELD (required) The sequence # of the field.
- ; COMP (optional) If specified, the data type is parsed as a component value.
- ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- ;Output:
- ; VALUE (required, pass-by-reference) These subscripts are returned:
- ; "FAMILY"
- ; "GIVEN" first name
- ; "SECOND" second and further names or initials
- ; "SUFFIX" (e.g., JR)
- ; "PREFIX" (e.g., DR)
- ; "DEGREE" (e.g., MD)
- ;
- N SUB,VAR
- Q:'$G(FIELD)
- I '$G(COMP) D
- .S VAR="COMP",SUB=1
- E D
- .S VAR="SUB"
- S:'$G(REP) REP=1
- S @VAR=1,VALUE("FAMILY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=2,VALUE("GIVEN")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=3,VALUE("SECOND")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=4,VALUE("SUFFIX")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=5,VALUE("PREFIX")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- S @VAR=6,VALUE("DEGREE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- Q
- ;** P146 END CJM
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHLOPRS2 11008 printed Feb 18, 2025@23:25:25 Page 2
- HLOPRS2 ;ALB/CJM-HL7 - Developer API's for parsing messages(continued) ;05/12/2009
- +1 ;;1.6;HEALTH LEVEL SEVEN;**131,146**;Oct 13, 1995;Build 16
- +2 ;
- GETTS(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets a segment value that is a timestamp in HL7 format and converts it
- +2 ;to FileMan format. IF the segment value included the timezone, it is
- +3 ;the timestamp is converted to local time.
- +4 ;
- +5 ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- +6 ;
- +7 ;
- +8 ;Input:
- +9 ; SEG - (required, pass by reference) The array returned by a call to $$NEXTSEG^HLOPRS.
- +10 ; FIELD - The sequence # of the field.
- +11 ; COMP (optional) If specified, the data type is parsed as a component value.
- +12 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +13 ;Output:
- +14 ; VALUE (pass-by-reference) The date/time in FileMan format.
- +15 ; VALUE("PRECISION") Expected values are:
- +16 ; "S" - second
- +17 ; "M" - minute
- +18 ; "H" - hour
- +19 ; "D" - day
- +20 ; "L" - month
- +21 ; "Y" - year
- +22 ; "" - precision not specified
- +23 ; Note: FM does not allow greater precision than seconds, so this API will round off to the second.
- +24 ;
- +25 NEW TIME,PREC,VAR
- +26 if '$GET(FIELD)
- QUIT
- +27 IF '$GET(COMP)
- Begin DoDot:1
- +28 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +29 IF '$TEST
- Begin DoDot:1
- +30 SET VAR="SUB"
- End DoDot:1
- +31 if '$GET(REP)
- SET REP=1
- +32 SET @VAR=1
- SET TIME=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +33 SET @VAR=2
- SET PREC=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +34 SET VALUE=$$HL7TFM^XLFDT(TIME)
- +35 IF '$LENGTH(PREC)
- Begin DoDot:1
- +36 IF $LENGTH(+TIME)>12
- SET PREC="S"
- QUIT
- +37 IF $LENGTH(+TIME)>10
- SET PREC="M"
- QUIT
- +38 IF $LENGTH(+TIME)>8
- SET PREC="H"
- QUIT
- +39 IF $LENGTH(+TIME)>6
- SET PREC="D"
- QUIT
- +40 IF $LENGTH(+TIME)>4
- SET PREC="L"
- QUIT
- +41 IF $LENGTH(+TIME)=4
- SET PREC="Y"
- QUIT
- End DoDot:1
- +42 SET VALUE("PRECISION")=PREC
- +43 QUIT
- +44 ;
- GETDT(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets a segment value that is a date in HL7 format and converts it to FileMan format.
- +2 ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to $$NEXTSEG^HLOPRS.
- +6 ; FIELD - The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - the occurrence# (optional, defaults to 1) For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (pass-by-reference) The date/time in FileMan format.
- +11 ; VALUE("PRECISION") - Expected values are:
- +12 ; "S" - second (not valid for DT)
- +13 ; "M" - minute (not valid for DT)
- +14 ; "H" - hour (not valid for DT)
- +15 ; "D" - day
- +16 ; "L" - month
- +17 ; "Y" - year
- +18 ; "" - not specified
- +19 ;
- +20 NEW TIME,PREC,VAR
- +21 if '$GET(FIELD)
- QUIT
- +22 IF '$GET(COMP)
- Begin DoDot:1
- +23 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +24 IF '$TEST
- Begin DoDot:1
- +25 SET VAR="SUB"
- End DoDot:1
- +26 if '$GET(REP)
- SET REP=1
- +27 SET @VAR=1
- SET TIME=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +28 SET VALUE=$$HL7TFM^XLFDT(TIME)
- +29 SET PREC=""
- +30 Begin DoDot:1
- +31 IF $LENGTH(+TIME)>12
- SET PREC="S"
- QUIT
- +32 IF $LENGTH(+TIME)>10
- SET PREC="M"
- QUIT
- +33 IF $LENGTH(+TIME)>8
- SET PREC="H"
- QUIT
- +34 IF $LENGTH(+TIME)>6
- SET PREC="D"
- QUIT
- +35 IF $LENGTH(+TIME)>4
- SET PREC="L"
- QUIT
- +36 IF $LENGTH(+TIME)=4
- SET PREC="Y"
- QUIT
- End DoDot:1
- +37 SET VALUE("PRECISION")=PREC
- +38 QUIT
- +39 ;
- GETCE(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an CE data type(Coded Element, HL7 Section Reference 2.9.8) from the specified field.
- +2 ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "ID" - the identifier
- +12 ; "TEXT" -
- +13 ; "SYSTEM" - name of the code system
- +14 ; "ALTERNATE ID" - alternate identifier
- +15 ; "ALTERNATE TEXT"
- +16 ; "ALTERNATE SYSTEM" - name of the alternate coding system
- +17 ;
- +18 NEW SUB,VAR
- +19 if '$GET(FIELD)
- QUIT
- +20 if '$GET(REP)
- SET REP=1
- +21 IF '$GET(COMP)
- Begin DoDot:1
- +22 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +23 IF '$TEST
- Begin DoDot:1
- +24 SET VAR="SUB"
- End DoDot:1
- +25 SET @VAR=1
- SET VALUE("ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +26 SET @VAR=2
- SET VALUE("TEXT")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +27 SET @VAR=3
- SET VALUE("SYSTEM")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +28 SET @VAR=4
- SET VALUE("ALTERNATE ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +29 SET @VAR=5
- SET VALUE("ALTERNATE TEXT")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +30 SET @VAR=6
- SET VALUE("ALTERNATE SYSTEM")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +31 QUIT
- +32 ;
- GETHD(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an HD data type (Hierarchic Designator, HL7 Section Reference 2.9.21) from the specified field.
- +2 ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "NAMESPACE ID"
- +12 ; "UNIVERSAL ID"
- +13 ; "UNIVERSAL ID TYPE"
- +14 ;
- +15 NEW SUB,VAR
- +16 if '$GET(FIELD)
- QUIT
- +17 if '$GET(REP)
- SET REP=1
- +18 IF '$GET(COMP)
- Begin DoDot:1
- +19 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +20 IF '$TEST
- Begin DoDot:1
- +21 SET VAR="SUB"
- End DoDot:1
- +22 SET @VAR=1
- SET VALUE("NAMESPACE ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +23 SET @VAR=2
- SET VALUE("UNIVERSAL ID")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +24 SET @VAR=3
- SET VALUE("UNIVERSAL ID TYPE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +25 QUIT
- +26 ;
- GETCNE(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an CNE data type (Coded With No Exceptions, HL7 Section Reference 2.9.8) from the specified field.
- +2 ;IF the component is specified, then the component is parsed for data type rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "ID" - the identifier
- +12 ; "TEXT" -
- +13 ; "SYSTEM" - name of the code system
- +14 ; "ALTERNATE ID" - alternate identifier
- +15 ; "ALTERNATE TEXT"
- +16 ; "ALTERNATE SYSTEM" - name of the alternate coding system
- +17 ; "SYSTEM VERSION" - version ID of the coding system
- +18 ; "ALTERNATE SYSTEM VERSION" - version ID of the alternate coding system
- +19 ; "ORIGINAL TEXT"
- +20 ;
- +21 DO GETCODE^HLOPRS1(.SEG,.VALUE,.FIELD,.COMP,.REP)
- +22 QUIT
- +23 ;
- GETCWE(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an CWE data type (Coded With Exceptions, HL7 Section Reference 2.9.11) from the specified field.
- +2 ;IF the component is specified, then the component is parsed for the data type rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "ID" - the identifier
- +12 ; "TEXT" -
- +13 ; "SYSTEM" - name of the code system
- +14 ; "ALTERNATE ID" - alternate identifier
- +15 ; "ALTERNATE TEXT"
- +16 ; "ALTERNATE SYSTEM" - name of the alternate coding system
- +17 ; "SYSTEM VERSION" - version ID of the coding system
- +18 ; "ALTERNATE SYSTEM VERSION" - version ID of the alternate coding system
- +19 ; "ORIGINAL TEXT"
- +20 DO GETCODE^HLOPRS1(.SEG,.VALUE,.FIELD,.COMP,.REP)
- +21 QUIT
- +22 ;
- GETAD(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an AD data type (Address, HL7 Section Reference 2.9.1) from the specified field. It can also be used to get the 1st 8 components of the XAD (Extended Address) data type.
- +2 ;IF the component is specified, then the component is parsed for the address rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "STREET1" -street address
- +12 ; "STREET2" - other designation
- +13 ; "CITY"
- +14 ; "STATE" - state or province
- +15 ; "ZIP" - zip or postal code
- +16 ; "COUNTRY"
- +17 ; "TYPE" - address type
- +18 ; "OTHER" - other geographic designation
- +19 ;
- +20 NEW SUB,VAR
- +21 if '$GET(FIELD)
- QUIT
- +22 IF '$GET(COMP)
- Begin DoDot:1
- +23 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +24 IF '$TEST
- Begin DoDot:1
- +25 SET VAR="SUB"
- End DoDot:1
- +26 if '$GET(REP)
- SET REP=1
- +27 SET @VAR=1
- SET VALUE("STREET1")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +28 SET @VAR=2
- SET VALUE("STREET2")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +29 SET @VAR=3
- SET VALUE("CITY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +30 SET @VAR=4
- SET VALUE("STATE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +31 SET @VAR=5
- SET VALUE("ZIP")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +32 SET @VAR=6
- SET VALUE("COUNTRY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +33 SET @VAR=7
- SET VALUE("TYPE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +34 SET @VAR=8
- SET VALUE("OTHER")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +35 QUIT
- +36 ;
- +37 ;**P146 START CJM
- GETXPN(SEG,VALUE,FIELD,COMP,REP) ;
- +1 ;Gets an XPN data type (Extended Persons Name, HL7 Section Reference 2.9.1) from the specified field.
- +2 ;IF the component is specified, then the component is parsed for the address rather than at the higher field level.
- +3 ;
- +4 ;Input:
- +5 ; SEG - (required, pass by reference) The array returned by a call to NEXTSEG^HLOPRS.
- +6 ; FIELD (required) The sequence # of the field.
- +7 ; COMP (optional) If specified, the data type is parsed as a component value.
- +8 ; REP - The occurrence # (optional, defaults to 1). For a non-repeating fields, this parameter is not necessary.
- +9 ;Output:
- +10 ; VALUE (required, pass-by-reference) These subscripts are returned:
- +11 ; "FAMILY"
- +12 ; "GIVEN" first name
- +13 ; "SECOND" second and further names or initials
- +14 ; "SUFFIX" (e.g., JR)
- +15 ; "PREFIX" (e.g., DR)
- +16 ; "DEGREE" (e.g., MD)
- +17 ;
- +18 NEW SUB,VAR
- +19 if '$GET(FIELD)
- QUIT
- +20 IF '$GET(COMP)
- Begin DoDot:1
- +21 SET VAR="COMP"
- SET SUB=1
- End DoDot:1
- +22 IF '$TEST
- Begin DoDot:1
- +23 SET VAR="SUB"
- End DoDot:1
- +24 if '$GET(REP)
- SET REP=1
- +25 SET @VAR=1
- SET VALUE("FAMILY")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +26 SET @VAR=2
- SET VALUE("GIVEN")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +27 SET @VAR=3
- SET VALUE("SECOND")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +28 SET @VAR=4
- SET VALUE("SUFFIX")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +29 SET @VAR=5
- SET VALUE("PREFIX")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +30 SET @VAR=6
- SET VALUE("DEGREE")=$$GET^HLOPRS(.SEG,FIELD,COMP,SUB,REP)
- +31 QUIT
- +32 ;** P146 END CJM