Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RORXU008

RORXU008.m

Go to the documentation of this file.
  1. RORXU008 ;HCIOFO/SG - REPORT PARAMETERS (CONT.) ;6/21/06 2:08pm
  1. ;;1.5;CLINICAL CASE REGISTRIES;**1,19**;Feb 17, 2006;Build 43
  1. ;
  1. Q
  1. ;
  1. ;***** PROCESSES THE LIST OF ICD CODES
  1. ;
  1. ; .RORTSK Task number and task parameters
  1. ;
  1. ; PARTAG Reference (IEN) to the parent tag
  1. ;
  1. ; .ROR8LST Reference to a local variable, which contains a
  1. ; closed root of an array. IEN's of ICD codes
  1. ; will be returned into this array.
  1. ;
  1. ; @ROR8LST@(IEN,Group#) = ""
  1. ;
  1. ; If this parameter is undefined or empty, then a
  1. ; temporary buffer is allocated by the $$ALLOC^RORTMP
  1. ; function and its root is returned via this parameter.
  1. ;
  1. ; If all ICD codes are requested (the "ALL" attribute
  1. ; of the "ICDLST" tag), then "*" is returned.
  1. ;
  1. ; [.GRPLST] Reference to a local variable that will contain
  1. ; the list of ICD code groups.
  1. ;
  1. ; GRPLST(
  1. ; "C",Group#) = GroupName
  1. ; "N",GroupName) = Group#
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; >0 IEN of the ICDLST element
  1. ;
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ; --- ROUTINE MODIFICATION LOG ---
  1. ;
  1. ;PKG/PATCH DATE DEVELOPER MODIFICATION
  1. ;----------- ---------- ----------- ----------------------------------------
  1. ;ROR*1.5*19 FEB 2012 J SCOTT Support for ICD-10 Coding System.
  1. ;ROR*1.5*19 FEB 2012 J SCOTT Change entry point ICD9LST to ICDLST.
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ;
  1. ICDLST(RORTSK,PARTAG,ROR8LST,GRPLST) ;
  1. ;
  1. N ATTR,ICDALL,ICDOPTS,LTAG,RC,TMP
  1. ;
  1. S ICDALL=+$$PARAM^RORTSK01("ICDLST","ALL")
  1. S (LTAG,RC)=0
  1. ;
  1. ;=== Validate parameters
  1. I 'ICDALL D K @ROR8LST
  1. . S:$G(ROR8LST)="" ROR8LST=$$ALLOC^RORTMP()
  1. E S ROR8LST="*"
  1. ;
  1. ;=== Process the drug options (if present)
  1. M ICDOPTS=RORTSK("PARAMS","ICDLST","A")
  1. I $D(ICDOPTS)>1 D Q:LTAG'>0 LTAG
  1. . S ATTR=$S(ICDALL:"ALL",1:"")
  1. . S LTAG=$$ADDVAL^RORTSK11(RORTSK,"ICDLST",ATTR,PARTAG)
  1. . Q:LTAG'>0
  1. . ;--- Output option attributes
  1. . S ATTR="",RC=0
  1. . F S ATTR=$O(ICDOPTS(ATTR)) Q:ATTR="" D Q:RC<0
  1. . . S RC=$$ADDATTR^RORTSK11(RORTSK,LTAG,ATTR,"1")
  1. . I RC<0 S LTAG=RC Q
  1. . S ATTR=$$OPTXT^RORXU002(.ICDOPTS)
  1. . D:ATTR'="" ADDATTR^RORTSK11(RORTSK,LTAG,"DESCR",ATTR)
  1. ;
  1. ;=== Process the list of ICD codes (if present)
  1. I 'ICDALL D:$D(RORTSK("PARAMS","ICDLST","G"))>1
  1. . N GRPNAME,GRPTAG,IG,NODE,RORICDIEN,RORICDCODE,RORXMLNODE,RORICDSYS
  1. . I LTAG'>0 D Q:LTAG'>0
  1. . . S LTAG=$$ADDVAL^RORTSK11(RORTSK,"ICDLST",,PARTAG)
  1. . ;--
  1. . S NODE=$NA(RORTSK("PARAMS","ICDLST","G"))
  1. . S GRPNAME="",RC=0
  1. . F S GRPNAME=$O(@NODE@(GRPNAME)) Q:GRPNAME="" D Q:RC<0
  1. . . S IG=$O(GRPLST("C",""),-1)+1
  1. . . S GRPLST("C",IG)=GRPNAME,GRPLST("N",GRPNAME)=IG
  1. . . S GRPTAG=$$ADDVAL^RORTSK11(RORTSK,"GROUP",,LTAG)
  1. . . I GRPTAG'>0 S RC=GRPTAG Q
  1. . . D ADDATTR^RORTSK11(RORTSK,GRPTAG,"NAME",GRPNAME)
  1. . . S RORICDIEN=0
  1. . . F S RORICDIEN=$O(@NODE@(GRPNAME,"C",RORICDIEN)) Q:RORICDIEN'>0 D
  1. . . . S RORICDCODE=$P(@NODE@(GRPNAME,"C",RORICDIEN),U,1) Q:RORICDCODE=""
  1. . . . S RORICDSYS=$P(@NODE@(GRPNAME,"C",RORICDIEN),U,2)
  1. . . . S RORXMLNODE=$S(RORICDSYS=1:"ICD9",RORICDSYS=2:"ICD9",1:"ICD10")
  1. . . . D ADDVAL^RORTSK11(RORTSK,RORXMLNODE,RORICDCODE,GRPTAG,,RORICDIEN)
  1. . . . S @ROR8LST@(RORICDIEN,IG)=""
  1. ;
  1. Q $S(RC<0:RC,1:LTAG)
  1. ;
  1. ;***** FUNCTION FOR THE PHARMACY SEARCH API
  1. ;
  1. ; .GRPLST Reference to a local variable that contains a list
  1. ; of group codes. It is used to determine if codes
  1. ; from all groups were found.
  1. ;
  1. ; ICDIEN IEN of the ICD code
  1. ;
  1. ; ROR8LST Closed root of the ICD code list generated by the
  1. ; $$ICDLST^RORXU008 function or "*" for all drugs.
  1. ;
  1. ; Return Values:
  1. ; 0 Ok
  1. ; 1 Skip the record
  1. ;
  1. ICDGRCHK(GRPLST,ICDIEN,ROR8LST) ;
  1. Q:ROR8LST="*" 0
  1. Q:$D(@ROR8LST@(ICDIEN))<10 1
  1. N GRP S GRP=""
  1. F S GRP=$O(@ROR8LST@(ICDIEN,GRP)) Q:GRP="" K GRPLST(GRP)
  1. Q 0