- RAMAGU01 ;HCIOFO/SG,GJC - ORDERS/EXAMS API (RAMISC UTILITIES) ; 4/12/13 6:27pm
- ;;5.0;Radiology/Nuclear Medicine;**90,116**;Mar 16, 1998;Build 1
- ;
- Q
- ;
- ;***** LOADS DEFINITIONS OF MISCELLANEOUS PARAMETERS
- ;
- ; .MSPSDEFS Reference to a local variable where descriptors
- ; of the miscellaneous parameters are loaded to
- ; (see description of the RAMSPSDEFS in the ^RAMAG
- ; routine for details).
- ;
- LDMSPRMS(MSPSDEFS) ;
- N BUF,FILE,I,NAME
- K MSPSDEFS
- F I=4:1 S BUF=$P($T(MSCPRMS+I),";;",2) Q:BUF="" D
- . S BUF=$P($TR(BUF,"| ",U),U,2,99)
- . S NAME=$P(BUF,U,1) Q:NAME=""
- . S FILE=$P(BUF,U,2) Q:FILE'>0
- . S MSPSDEFS("N",NAME)=$P(BUF,U,2,5)
- . S:$P(BUF,U,4)["*" MSPSDEFS("F",FILE,NAME)=""
- Q
- ;
- MSCPRMS ;+++++ DEFINITIONS OF MISCELLANEOUS PARAMETERS
- ;;==========================================================
- ;;| Parameter | File |Field|Type |Req#| Reference |
- ;;|------------+-------+-----+-----+----+------------------|
- ;;|ACLHIST |74 | 400 | W | |$$COMPLETE^RAMAG06|
- ;;|BEDSECT |70.03 | 19 | P | |$$REGISTER^RAMAG03|
- ;;|CLINHIST |70.03 | 400 | W | |$$REGISTER^RAMAG03|
- ;;|CMUSED |70.03 | 10 | | |$$EXAMINED^RAMAG07|
- ;;|COMPLICAT |70.03 | 16 | P | |$$EXAMINED^RAMAG07|
- ;;|CONTMEDIA |70.3225| .01 | M | |$$EXAMINED^RAMAG07|
- ;;|CPTMODS |70.3135| .01 | PM | 14 |$$EXAMINED^RAMAG07|
- ;;|EXAMCAT |70.03 | 4 | | |$$REGISTER^RAMAG03|
- ;;|FILMSIZE |70.04 | .01 | PM | 4 |$$REGISTER^RAMAG03|
- ;;|FLAGS | | | | | ^RAMAG |
- ;;|HOLDESC |75.1 | 25 | W | | $$ORDCANC^RAMAG04|
- ;;|IMPRESSION |74 | 300 | W | 16 |$$COMPLETE^RAMAG06|
- ;;|ISOLPROC |75.1 | 24 | | | $$ORDER^RAMAG02|
- ;;|PREGNANT |75.1 | 13 | | | $$ORDER^RAMAG02|
- ;;|PREOPDT |75.1 | 12 | D | | $$ORDER^RAMAG02|
- ;;|PRIMCAM |70.03 | 18 | P | 6 |$$EXAMINED^RAMAG07|
- ;;|PRIMDXCODE |70.03 | 13 | P | 5 |$$EXAMINED^RAMAG07|
- ;;|PRIMINTRES |70.03 | 12 | P | 2 |$$EXAMINED^RAMAG07|
- ;;|PRIMINTSTF |70.03 | 15 | P | 2 |$$EXAMINED^RAMAG07|
- ;;|PRINCLIN |70.03 | 8 | P | |$$REGISTER^RAMAG03|
- ;;|PROBSTAT |74 | 25 | | |$$COMPLETE^RAMAG06|
- ;;|RAPROC |70.03 | 2 | | |$$REGISTER^RAMAG03|
- ;;|RDPHARMS |70.21 | | M | 17 |$$EXAMINED^RAMAG07|
- ;;| RDPH-ACDR |70.21 | 4 | * | 19 |$$EXAMINED^RAMAG07|
- ;;| RDPH-DOSE |70.21 | 7 | * | 17 |$$EXAMINED^RAMAG07|
- ;;| RDPH-DRUG |70.21 | .01 | P * | 17 |$$EXAMINED^RAMAG07|
- ;;| RDPH-DTADM|70.21 | 8 | D * | 21 |$$EXAMINED^RAMAG07|
- ;;| RDPH-DTDRW|70.21 | 5 | D * | 19 |$$EXAMINED^RAMAG07|
- ;;| RDPH-FORM |70.21 | 15 | * | 25 |$$EXAMINED^RAMAG07|
- ;;| RDPH-LOTN |70.21 | 13 | P * | 24 |$$EXAMINED^RAMAG07|
- ;;| RDPH-PWADM|70.21 | 9 | P * | 21 |$$EXAMINED^RAMAG07|
- ;;| RDPH-PWMSD|70.21 | 6 | P * | 19 |$$EXAMINED^RAMAG07|
- ;;| RDPH-ROUTE|70.21 | 11 | P * | 23 |$$EXAMINED^RAMAG07|
- ;;| RDPH-SITE |70.21 | 12 | P * | 23 |$$EXAMINED^RAMAG07|
- ;;| RDPH-VOL |70.21 | 14 | * | 25 |$$EXAMINED^RAMAG07|
- ;;|REPORT |74 | 200 | W | 11 |$$COMPLETE^RAMAG06|
- ;;|REQNATURE |75.1 | 26 | | | $$ORDER^RAMAG02|
- ;;|REQURG |75.1 | 6 | | | $$ORDER^RAMAG02|
- ;;|RPTDTE |74 | 8 | D | |$$COMPLETE^RAMAG06|
- ;;|RPTSTATUS |74 | 5 | | |$$COMPLETE^RAMAG06|
- ;;|SECDXCODE |70.14 | .01 | PM | |$$COMPLETE^RAMAG06|
- ;;|SERVICE |70.03 | 7 | P | |$$REGISTER^RAMAG03|
- ;;|SINGLERPT |70.03 | 25 | | |$$REGISTER^RAMAG03|
- ;;|TECH |70.12 | .01 | PM | 1 |$$EXAMINED^RAMAG07|
- ;;|TECHCOMM |70.07 | 4 | | |$$REGISTER^RAMAG03|
- ;;|TRANSCRST |74 | 11 | P | |$$COMPLETE^RAMAG06|
- ;;|TRANSPMODE |75.1 | 19 | | | $$ORDER^RAMAG02|
- ;;|VERDTE |74 | 7 | D | |$$COMPLETE^RAMAG06|
- ;;|VERPHYS |74 | 9 | P | |$$COMPLETE^RAMAG06|
- ;;|WARD |70.03 | 6 | P | |$$REGISTER^RAMAG03|
- ;;==========================================================
- ;
- ; Type Field type that requires special processing:
- ; D - Date/time, M - Multiple,
- ; P - Pointer, W - Word processing,
- ; * - Add this parameter to the "F" index
- ; (see the VEXAMND^RAMAGU14 for details).
- ;
- ; Req# Number of the "^"-piece of the value returned by the
- ; $$EXMSTREQ^RAMAGU06. It determines if a non-empty
- ; field value is required.
- ;
- ; Reference Indicates where the parameter is described for the
- ; first time.
- ;
- ; NOTE #1: This table is here not only for documentation purposes;
- ; the data is processed by the LDMSPRMS^RAMAGU01 procedure.
- ;
- ; NOTE #2: If a parameter does not have the corresponding field
- ; and has the "M" flag, then this is a record tag (e.g.
- ; RDPHARMS). It encloses other parameters that define
- ; field values for a record of the sub-file.
- ;
- Q
- ;
- ;***** PARSES RAMSC RECORDS (RPC) INTO RAMISC SUBSCRIPTS (API)
- ;
- ; .RAMSC Reference to the RAMSC parameter of a remote
- ; procedure.
- ;
- ; .RAMISC Reference to a local variable that will store
- ; miscellaneous parameters as subscripts (for API
- ; functions).
- ;
- ; Return values:
- ; <0 Error descriptor (see $$ERROR^RAERR)
- ; 0 Success
- ;
- RPCMISC(RAMSC,RAMISC) ;
- N RAMSPSDEFS,RASRCI,RC
- K RAMISC S RASRCI=""
- D LDMSPRMS(.RAMSPSDEFS)
- S RC=$$RPCMISC1("RAMISC")
- Q $S(RC>0:$$ERROR^RAERR(-5),1:RC)
- ;
- ;+++++ RECURSIVE PARSER OF RAMSC RECORDS
- ;
- ; DSTNODE Node of the RAMISC where values will be stored.
- ;
- ; [RECNAME] Tag name and index of the current record. They are
- ; [RECNDX] used to detect the record boundaries.
- ;
- ; Input Variables:
- ; RAMSC, RAMSPSDEFS, RASRCI
- ;
- ; Output Variables:
- ; RAMISC, RASRCI
- ;
- ; Return values:
- ; <0 Error descriptor (see $$ERROR^RAERR)
- ; 0 Success
- ; >0 Number of validation errors
- ;
- ; NOTE: This is an internal entry point. Do not call
- ; it from outside of this routine.
- ;
- RPCMISC1(DSTNODE,RECNAME,RECNDX) ;
- N ERRCNT,NAME,NDX,RARC,TMP,TYPE
- S (ERRCNT,RARC)=0
- ;===
- F S RASRCI=$O(RAMSC(RASRCI)) Q:RASRCI="" D Q:RARC
- . S NAME=$$TRIM^XLFSTR($P(RAMSC(RASRCI),U)) Q:NAME=""
- . S NDX=+$$TRIM^XLFSTR($P(RAMSC(RASRCI),U,2))
- . S TYPE=$P($G(RAMSPSDEFS("N",NAME)),U,3)
- . ;=== Single value
- . I NDX'>0 D Q
- . . I $D(@DSTNODE@(NAME))#10 D S ERRCNT=ERRCNT+1 Q
- . . . D ERROR^RAERR(-6,,NAME)
- . . ;--- Convert date/time value from HL7 (TS) to FileMan
- . . I TYPE["D" D Q
- . . . S @DSTNODE@(NAME)=$$HL7TFM^XLFDT($P(RAMSC(RASRCI),U,3))
- . . . I @DSTNODE@(NAME)<0 D S ERRCNT=ERRCNT+1
- . . . . S TMP=$NA(@DSTNODE@(NAME))
- . . . . D ERROR^RAERR(-3,TMP_"='"_$P(RAMSC(RASRCI),U,3)_"'",TMP)
- . . ;--- Copy parameters of other types
- . . S @DSTNODE@(NAME)=$P(RAMSC(RASRCI),U,3,999)
- . ;=== Check for duplicate indexes
- . I $D(@DSTNODE@(NAME,NDX)) D S ERRCNT=ERRCNT+1 Q
- . . D ERROR^RAERR(-7,,NDX,NAME)
- . ;=== Check for record start/end
- . I (TYPE["M"),$P($G(RAMSPSDEFS("N",NAME)),U,2)'>0 D Q
- . . ;--- If the name is the same as that of the current record, then
- . . ; this either the end of the current record or a beginning of
- . . ;--- the next record of the same kind (and on the same level).
- . . I NAME=$G(RECNAME) D:NDX'=$G(RECNDX) S RARC=1 Q
- . . . ;--- If the index is different from that of the current record,
- . . . ; then this is a beginning of the next record. Let the
- . . . ;--- source line be re-processed on the upper execution level.
- . . . S RASRCI=$O(RAMSC(RASRCI),-1)
- . . ;--- Start processing field values of the record
- . . S TMP=$$RPCMISC1($NA(@DSTNODE@(NAME,NDX)),NAME,NDX)
- . . I TMP<0 S RARC=TMP Q
- . . S:TMP>0 ERRCNT=ERRCNT+TMP
- . . S:RASRCI="" RARC=1
- . ;=== List item or text line
- . S @DSTNODE@(NAME,NDX)=$P(RAMSC(RASRCI),U,3,999)
- ;===
- Q $S(RARC<0:RARC,1:ERRCNT)
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRAMAGU01 8293 printed Feb 19, 2025@00:03:15 Page 2
- RAMAGU01 ;HCIOFO/SG,GJC - ORDERS/EXAMS API (RAMISC UTILITIES) ; 4/12/13 6:27pm
- +1 ;;5.0;Radiology/Nuclear Medicine;**90,116**;Mar 16, 1998;Build 1
- +2 ;
- +3 QUIT
- +4 ;
- +5 ;***** LOADS DEFINITIONS OF MISCELLANEOUS PARAMETERS
- +6 ;
- +7 ; .MSPSDEFS Reference to a local variable where descriptors
- +8 ; of the miscellaneous parameters are loaded to
- +9 ; (see description of the RAMSPSDEFS in the ^RAMAG
- +10 ; routine for details).
- +11 ;
- LDMSPRMS(MSPSDEFS) ;
- +1 NEW BUF,FILE,I,NAME
- +2 KILL MSPSDEFS
- +3 FOR I=4:1
- SET BUF=$PIECE($TEXT(MSCPRMS+I),";;",2)
- if BUF=""
- QUIT
- Begin DoDot:1
- +4 SET BUF=$PIECE($TRANSLATE(BUF,"| ",U),U,2,99)
- +5 SET NAME=$PIECE(BUF,U,1)
- if NAME=""
- QUIT
- +6 SET FILE=$PIECE(BUF,U,2)
- if FILE'>0
- QUIT
- +7 SET MSPSDEFS("N",NAME)=$PIECE(BUF,U,2,5)
- +8 if $PIECE(BUF,U,4)["*"
- SET MSPSDEFS("F",FILE,NAME)=""
- End DoDot:1
- +9 QUIT
- +10 ;
- MSCPRMS ;+++++ DEFINITIONS OF MISCELLANEOUS PARAMETERS
- +1 ;;==========================================================
- +2 ;;| Parameter | File |Field|Type |Req#| Reference |
- +3 ;;|------------+-------+-----+-----+----+------------------|
- +4 ;;|ACLHIST |74 | 400 | W | |$$COMPLETE^RAMAG06|
- +5 ;;|BEDSECT |70.03 | 19 | P | |$$REGISTER^RAMAG03|
- +6 ;;|CLINHIST |70.03 | 400 | W | |$$REGISTER^RAMAG03|
- +7 ;;|CMUSED |70.03 | 10 | | |$$EXAMINED^RAMAG07|
- +8 ;;|COMPLICAT |70.03 | 16 | P | |$$EXAMINED^RAMAG07|
- +9 ;;|CONTMEDIA |70.3225| .01 | M | |$$EXAMINED^RAMAG07|
- +10 ;;|CPTMODS |70.3135| .01 | PM | 14 |$$EXAMINED^RAMAG07|
- +11 ;;|EXAMCAT |70.03 | 4 | | |$$REGISTER^RAMAG03|
- +12 ;;|FILMSIZE |70.04 | .01 | PM | 4 |$$REGISTER^RAMAG03|
- +13 ;;|FLAGS | | | | | ^RAMAG |
- +14 ;;|HOLDESC |75.1 | 25 | W | | $$ORDCANC^RAMAG04|
- +15 ;;|IMPRESSION |74 | 300 | W | 16 |$$COMPLETE^RAMAG06|
- +16 ;;|ISOLPROC |75.1 | 24 | | | $$ORDER^RAMAG02|
- +17 ;;|PREGNANT |75.1 | 13 | | | $$ORDER^RAMAG02|
- +18 ;;|PREOPDT |75.1 | 12 | D | | $$ORDER^RAMAG02|
- +19 ;;|PRIMCAM |70.03 | 18 | P | 6 |$$EXAMINED^RAMAG07|
- +20 ;;|PRIMDXCODE |70.03 | 13 | P | 5 |$$EXAMINED^RAMAG07|
- +21 ;;|PRIMINTRES |70.03 | 12 | P | 2 |$$EXAMINED^RAMAG07|
- +22 ;;|PRIMINTSTF |70.03 | 15 | P | 2 |$$EXAMINED^RAMAG07|
- +23 ;;|PRINCLIN |70.03 | 8 | P | |$$REGISTER^RAMAG03|
- +24 ;;|PROBSTAT |74 | 25 | | |$$COMPLETE^RAMAG06|
- +25 ;;|RAPROC |70.03 | 2 | | |$$REGISTER^RAMAG03|
- +26 ;;|RDPHARMS |70.21 | | M | 17 |$$EXAMINED^RAMAG07|
- +27 ;;| RDPH-ACDR |70.21 | 4 | * | 19 |$$EXAMINED^RAMAG07|
- +28 ;;| RDPH-DOSE |70.21 | 7 | * | 17 |$$EXAMINED^RAMAG07|
- +29 ;;| RDPH-DRUG |70.21 | .01 | P * | 17 |$$EXAMINED^RAMAG07|
- +30 ;;| RDPH-DTADM|70.21 | 8 | D * | 21 |$$EXAMINED^RAMAG07|
- +31 ;;| RDPH-DTDRW|70.21 | 5 | D * | 19 |$$EXAMINED^RAMAG07|
- +32 ;;| RDPH-FORM |70.21 | 15 | * | 25 |$$EXAMINED^RAMAG07|
- +33 ;;| RDPH-LOTN |70.21 | 13 | P * | 24 |$$EXAMINED^RAMAG07|
- +34 ;;| RDPH-PWADM|70.21 | 9 | P * | 21 |$$EXAMINED^RAMAG07|
- +35 ;;| RDPH-PWMSD|70.21 | 6 | P * | 19 |$$EXAMINED^RAMAG07|
- +36 ;;| RDPH-ROUTE|70.21 | 11 | P * | 23 |$$EXAMINED^RAMAG07|
- +37 ;;| RDPH-SITE |70.21 | 12 | P * | 23 |$$EXAMINED^RAMAG07|
- +38 ;;| RDPH-VOL |70.21 | 14 | * | 25 |$$EXAMINED^RAMAG07|
- +39 ;;|REPORT |74 | 200 | W | 11 |$$COMPLETE^RAMAG06|
- +40 ;;|REQNATURE |75.1 | 26 | | | $$ORDER^RAMAG02|
- +41 ;;|REQURG |75.1 | 6 | | | $$ORDER^RAMAG02|
- +42 ;;|RPTDTE |74 | 8 | D | |$$COMPLETE^RAMAG06|
- +43 ;;|RPTSTATUS |74 | 5 | | |$$COMPLETE^RAMAG06|
- +44 ;;|SECDXCODE |70.14 | .01 | PM | |$$COMPLETE^RAMAG06|
- +45 ;;|SERVICE |70.03 | 7 | P | |$$REGISTER^RAMAG03|
- +46 ;;|SINGLERPT |70.03 | 25 | | |$$REGISTER^RAMAG03|
- +47 ;;|TECH |70.12 | .01 | PM | 1 |$$EXAMINED^RAMAG07|
- +48 ;;|TECHCOMM |70.07 | 4 | | |$$REGISTER^RAMAG03|
- +49 ;;|TRANSCRST |74 | 11 | P | |$$COMPLETE^RAMAG06|
- +50 ;;|TRANSPMODE |75.1 | 19 | | | $$ORDER^RAMAG02|
- +51 ;;|VERDTE |74 | 7 | D | |$$COMPLETE^RAMAG06|
- +52 ;;|VERPHYS |74 | 9 | P | |$$COMPLETE^RAMAG06|
- +53 ;;|WARD |70.03 | 6 | P | |$$REGISTER^RAMAG03|
- +54 ;;==========================================================
- +55 ;
- +56 ; Type Field type that requires special processing:
- +57 ; D - Date/time, M - Multiple,
- +58 ; P - Pointer, W - Word processing,
- +59 ; * - Add this parameter to the "F" index
- +60 ; (see the VEXAMND^RAMAGU14 for details).
- +61 ;
- +62 ; Req# Number of the "^"-piece of the value returned by the
- +63 ; $$EXMSTREQ^RAMAGU06. It determines if a non-empty
- +64 ; field value is required.
- +65 ;
- +66 ; Reference Indicates where the parameter is described for the
- +67 ; first time.
- +68 ;
- +69 ; NOTE #1: This table is here not only for documentation purposes;
- +70 ; the data is processed by the LDMSPRMS^RAMAGU01 procedure.
- +71 ;
- +72 ; NOTE #2: If a parameter does not have the corresponding field
- +73 ; and has the "M" flag, then this is a record tag (e.g.
- +74 ; RDPHARMS). It encloses other parameters that define
- +75 ; field values for a record of the sub-file.
- +76 ;
- +77 QUIT
- +78 ;
- +79 ;***** PARSES RAMSC RECORDS (RPC) INTO RAMISC SUBSCRIPTS (API)
- +80 ;
- +81 ; .RAMSC Reference to the RAMSC parameter of a remote
- +82 ; procedure.
- +83 ;
- +84 ; .RAMISC Reference to a local variable that will store
- +85 ; miscellaneous parameters as subscripts (for API
- +86 ; functions).
- +87 ;
- +88 ; Return values:
- +89 ; <0 Error descriptor (see $$ERROR^RAERR)
- +90 ; 0 Success
- +91 ;
- RPCMISC(RAMSC,RAMISC) ;
- +1 NEW RAMSPSDEFS,RASRCI,RC
- +2 KILL RAMISC
- SET RASRCI=""
- +3 DO LDMSPRMS(.RAMSPSDEFS)
- +4 SET RC=$$RPCMISC1("RAMISC")
- +5 QUIT $SELECT(RC>0:$$ERROR^RAERR(-5),1:RC)
- +6 ;
- +7 ;+++++ RECURSIVE PARSER OF RAMSC RECORDS
- +8 ;
- +9 ; DSTNODE Node of the RAMISC where values will be stored.
- +10 ;
- +11 ; [RECNAME] Tag name and index of the current record. They are
- +12 ; [RECNDX] used to detect the record boundaries.
- +13 ;
- +14 ; Input Variables:
- +15 ; RAMSC, RAMSPSDEFS, RASRCI
- +16 ;
- +17 ; Output Variables:
- +18 ; RAMISC, RASRCI
- +19 ;
- +20 ; Return values:
- +21 ; <0 Error descriptor (see $$ERROR^RAERR)
- +22 ; 0 Success
- +23 ; >0 Number of validation errors
- +24 ;
- +25 ; NOTE: This is an internal entry point. Do not call
- +26 ; it from outside of this routine.
- +27 ;
- RPCMISC1(DSTNODE,RECNAME,RECNDX) ;
- +1 NEW ERRCNT,NAME,NDX,RARC,TMP,TYPE
- +2 SET (ERRCNT,RARC)=0
- +3 ;===
- +4 FOR
- SET RASRCI=$ORDER(RAMSC(RASRCI))
- if RASRCI=""
- QUIT
- Begin DoDot:1
- +5 SET NAME=$$TRIM^XLFSTR($PIECE(RAMSC(RASRCI),U))
- if NAME=""
- QUIT
- +6 SET NDX=+$$TRIM^XLFSTR($PIECE(RAMSC(RASRCI),U,2))
- +7 SET TYPE=$PIECE($GET(RAMSPSDEFS("N",NAME)),U,3)
- +8 ;=== Single value
- +9 IF NDX'>0
- Begin DoDot:2
- +10 IF $DATA(@DSTNODE@(NAME))#10
- Begin DoDot:3
- +11 DO ERROR^RAERR(-6,,NAME)
- End DoDot:3
- SET ERRCNT=ERRCNT+1
- QUIT
- +12 ;--- Convert date/time value from HL7 (TS) to FileMan
- +13 IF TYPE["D"
- Begin DoDot:3
- +14 SET @DSTNODE@(NAME)=$$HL7TFM^XLFDT($PIECE(RAMSC(RASRCI),U,3))
- +15 IF @DSTNODE@(NAME)<0
- Begin DoDot:4
- +16 SET TMP=$NAME(@DSTNODE@(NAME))
- +17 DO ERROR^RAERR(-3,TMP_"='"_$PIECE(RAMSC(RASRCI),U,3)_"'",TMP)
- End DoDot:4
- SET ERRCNT=ERRCNT+1
- End DoDot:3
- QUIT
- +18 ;--- Copy parameters of other types
- +19 SET @DSTNODE@(NAME)=$PIECE(RAMSC(RASRCI),U,3,999)
- End DoDot:2
- QUIT
- +20 ;=== Check for duplicate indexes
- +21 IF $DATA(@DSTNODE@(NAME,NDX))
- Begin DoDot:2
- +22 DO ERROR^RAERR(-7,,NDX,NAME)
- End DoDot:2
- SET ERRCNT=ERRCNT+1
- QUIT
- +23 ;=== Check for record start/end
- +24 IF (TYPE["M")
- IF $PIECE($GET(RAMSPSDEFS("N",NAME)),U,2)'>0
- Begin DoDot:2
- +25 ;--- If the name is the same as that of the current record, then
- +26 ; this either the end of the current record or a beginning of
- +27 ;--- the next record of the same kind (and on the same level).
- +28 IF NAME=$GET(RECNAME)
- if NDX'=$GET(RECNDX)
- Begin DoDot:3
- +29 ;--- If the index is different from that of the current record,
- +30 ; then this is a beginning of the next record. Let the
- +31 ;--- source line be re-processed on the upper execution level.
- +32 SET RASRCI=$ORDER(RAMSC(RASRCI),-1)
- End DoDot:3
- SET RARC=1
- QUIT
- +33 ;--- Start processing field values of the record
- +34 SET TMP=$$RPCMISC1($NAME(@DSTNODE@(NAME,NDX)),NAME,NDX)
- +35 IF TMP<0
- SET RARC=TMP
- QUIT
- +36 if TMP>0
- SET ERRCNT=ERRCNT+TMP
- +37 if RASRCI=""
- SET RARC=1
- End DoDot:2
- QUIT
- +38 ;=== List item or text line
- +39 SET @DSTNODE@(NAME,NDX)=$PIECE(RAMSC(RASRCI),U,3,999)
- End DoDot:1
- if RARC
- QUIT
- +40 ;===
- +41 QUIT $SELECT(RARC<0:RARC,1:ERRCNT)