376 | | * Package File Entry Name is C0CR |
| 376 | The following are technical details. |
| 377 | |
| 378 | === Package File Entry === |
| 379 | |
| 380 | === Dependencies === |
| 381 | * Kernel 8 |
| 382 | * Fileman 22 |
| 383 | |
| 384 | === Routine list === |
| 385 | |
| 386 | === Description of routines and overall flow === |
| 387 | |
| 388 | === Modifications to National VA distributed routines === |
| 389 | None. |
| 390 | |
| 391 | ### File list |
| 392 | None included. |
| 393 | |
| 394 | ### Exported Options |
| 395 | None included. |
| 396 | |
| 397 | ### Archiving and Purging |
| 398 | Not supported. |
| 399 | |
| 400 | ### Supported APIs |
| 401 | |
| 402 | ### External Interfaces, External Relations |
| 403 | None |
| 404 | |
| 405 | ### Internal relations |
| 406 | None. |
| 407 | |
| 408 | ### Package wide-variables |
| 409 | None. |
| 410 | |
| 411 | ### Security |
| 412 | This software implements no security of its own. It inherits pharmacy security. |
| 413 | |
| 414 | ### File Structure |
| 415 | All files have only a zero node for each entry and correspond as much as possible to the RxNorm file format, except that the '|' has been substitued with a "^". The exception to that rule is when a file's first field cannot be the .01 because it's missing for some entries. In this case, the first field and a key field are switch so that the key field can be the .01. |
| 416 | |
| 417 | {{{ |
| 418 | CONDENSED DATA DICTIONARY---RXNORM CONCEPT NAMES AND SOURCES FILE (#176.001)UCI: F201303,ICARUS |
| 419 | |
| 420 | STORED IN: ^C0CRXN(176.001, 11/21/13 PAGE 1 |
| 421 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 422 | |
| 423 | FILE SECURITY |
| 424 | DD SECURITY : @ DELETE SECURITY: |
| 425 | READ SECURITY : LAYGO SECURITY : |
| 426 | WRITE SECURITY : @ |
| 427 | CROSS REFERENCED BY: |
| 428 | |
| 429 | |
| 430 | FILE #176.001 |
| 431 | INDEXED BY: RXCUI (B), CODE (CODE), SAB & TTY & CODE & RXCUI (STC), STR (STR), SAB & TTY & RXCUI & CODE (STX) |
| 432 | |
| 433 | |
| 434 | FILE STRUCTURE |
| 435 | |
| 436 | FIELD FIELD |
| 437 | NUMBER NAME |
| 438 | |
| 439 | .01 RXCUI (RFJ8), [0;1] |
| 440 | .02 LAT (RFJ3), [0;2] |
| 441 | .03 TS (FJ1), [0;3] |
| 442 | .04 LUI (FJ8), [0;4] |
| 443 | .05 STT (FJ3), [0;5] |
| 444 | .06 SUI (FJ8), [0;6] |
| 445 | .07 ISPREF (FJ1), [0;7] |
| 446 | .08 RXAUI (RFJ8), [0;8] |
| 447 | .09 SAUI (FJ50), [0;9] |
| 448 | .1 SCUI (FJ50), [0;10] |
| 449 | .11 SDUI (FJ50), [0;11] |
| 450 | .12 SAB (RFJ20), [0;12] |
| 451 | .13 TTY (RFJ20), [0;13] |
| 452 | .14 CODE (RFJ50), [0;14] |
| 453 | .15 STR (RFJ3000), [0;15] |
| 454 | .16 SRL (FJ10), [0;16] |
| 455 | .17 SUPPRESS (FJ1), [0;17] |
| 456 | .18 CVF (FJ50), [0;18] |
| 457 | 50 COMPUTED DRUGS (Cmp50), [ ; ] |
| 458 | |
| 459 | |
| 460 | |
| 461 | CONDENSED DATA DICTIONARY---RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES FILE (#176.002)UCI: F201303,ICARUS |
| 462 | |
| 463 | STORED IN: ^C0CRXN(176.002, 11/21/13 PAGE 1 |
| 464 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 465 | |
| 466 | FILE SECURITY |
| 467 | DD SECURITY : @ DELETE SECURITY: @ |
| 468 | READ SECURITY : LAYGO SECURITY : @ |
| 469 | WRITE SECURITY : @ |
| 470 | CROSS REFERENCED BY: |
| 471 | ATN(XATN) ATV(XATV) |
| 472 | |
| 473 | FILE #176.002 |
| 474 | INDEXED BY: RXCUI & SAB & ATN & ATV (ANDFRT), SAB & ATN & ATV & RXCUI (ASAA), SAB & ATN & RXCUI & ATV (ASAR), RXCUI (RXCUI) |
| 475 | |
| 476 | |
| 477 | FILE STRUCTURE |
| 478 | |
| 479 | FIELD FIELD |
| 480 | NUMBER NAME |
| 481 | |
| 482 | .01 ATN (RFJ1000), [0;1] |
| 483 | .02 LUI (FJ8), [0;2] |
| 484 | .03 SUI (FJ8), [0;3] |
| 485 | .04 RXAUI (FJ8), [0;4] |
| 486 | .05 STYPE (FJ50), [0;5] |
| 487 | .06 CODE (FJ50), [0;6] |
| 488 | .07 ATUI (FJ11), [0;7] |
| 489 | .08 SATUI (FJ50), [0;8] |
| 490 | .09 RXCUI (FJ8), [0;9] |
| 491 | .1 SAB (RFJ20), [0;10] |
| 492 | .11 ATV (FJ4000), [0;11] |
| 493 | .12 SUPPRESS (FJ1), [0;12] |
| 494 | .13 CVF (FJ50), [0;13] |
| 495 | |
| 496 | |
| 497 | |
| 498 | CONDENSED DATA DICTIONARY---RXNORM SOURCE INFORMATION FILE (#176.003)UCI: F201303,ICARUS |
| 499 | |
| 500 | STORED IN: ^C0CRXN(176.003, 11/21/13 PAGE 1 |
| 501 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 502 | |
| 503 | FILE SECURITY |
| 504 | DD SECURITY : @ DELETE SECURITY: @ |
| 505 | READ SECURITY : LAYGO SECURITY : @ |
| 506 | WRITE SECURITY : @ |
| 507 | CROSS REFERENCED BY: |
| 508 | RSAB(B) |
| 509 | |
| 510 | |
| 511 | FILE STRUCTURE |
| 512 | |
| 513 | FIELD FIELD |
| 514 | NUMBER NAME |
| 515 | |
| 516 | .01 RSAB (RFJ20), [0;1] |
| 517 | .02 RCUI (FJ8), [0;2] |
| 518 | .03 VSAB (FJ40), [0;3] |
| 519 | .04 VCUI (FJ8), [0;4] |
| 520 | .05 SON (FJ3000), [0;5] |
| 521 | .06 SF (FJ20), [0;6] |
| 522 | .07 SVER (FJ20), [0;7] |
| 523 | .08 VSTART (FJ10), [0;8] |
| 524 | .09 VEND (FJ10), [0;9] |
| 525 | .1 IMETA (FJ10), [0;10] |
| 526 | .11 RMETA (FJ10), [0;11] |
| 527 | .12 SLC (FJ1000), [0;12] |
| 528 | .13 SCC (FJ1000), [0;13] |
| 529 | .14 SRL (NJ10,0), [0;14] |
| 530 | .15 TFR (NJ10,0), [0;15] |
| 531 | .16 CFR (NJ10,0), [0;16] |
| 532 | .17 CXTY (FJ50), [0;17] |
| 533 | .18 TTYL (FJ300), [0;18] |
| 534 | .19 ATNL (FJ1000), [0;19] |
| 535 | .2 LAT (FJ3), [0;20] |
| 536 | .21 CENC (FJ20), [0;21] |
| 537 | .22 CURVER (FJ1), [0;22] |
| 538 | .23 SABIN (FJ1), [0;23] |
| 539 | .24 SSN (FJ3000), [0;24] |
| 540 | .25 SCIT (FJ4000), [0;25] |
| 541 | |
| 542 | |
| 543 | |
| 544 | CONDENSED DATA DICTIONARY---RXNORM SEMANTIC TYPES FILE (#176.004)UCI: F201303,ICARUS |
| 545 | |
| 546 | STORED IN: ^C0CRXN(176.004, 11/21/13 PAGE 1 |
| 547 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 548 | |
| 549 | FILE SECURITY |
| 550 | DD SECURITY : @ DELETE SECURITY: @ |
| 551 | READ SECURITY : LAYGO SECURITY : @ |
| 552 | WRITE SECURITY : @ |
| 553 | CROSS REFERENCED BY: |
| 554 | RXNCUI(B) |
| 555 | |
| 556 | |
| 557 | FILE STRUCTURE |
| 558 | |
| 559 | FIELD FIELD |
| 560 | NUMBER NAME |
| 561 | |
| 562 | .01 RXNCUI (RFJ8), [0;1] |
| 563 | .02 TUI (FJ4), [0;2] |
| 564 | .03 STN (FJ100), [0;3] |
| 565 | .04 STY (FJ50), [0;4] |
| 566 | .05 ATUI (FJ11), [0;5] |
| 567 | .06 CVF (FJ50), [0;6] |
| 568 | |
| 569 | |
| 570 | |
| 571 | CONDENSED DATA DICTIONARY---RXNORM RELATED CONCEPTS FILE (#176.005)UCI: F201303,ICARUS |
| 572 | |
| 573 | STORED IN: ^C0CRXN(176.005, 11/21/13 PAGE 1 |
| 574 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 575 | |
| 576 | FILE SECURITY |
| 577 | DD SECURITY : @ DELETE SECURITY: @ |
| 578 | READ SECURITY : LAYGO SECURITY : @ |
| 579 | WRITE SECURITY : @ |
| 580 | CROSS REFERENCED BY: |
| 581 | |
| 582 | |
| 583 | FILE #176.005 |
| 584 | INDEXED BY: RXCUI1 & RELA & RXCUI2 (B) |
| 585 | |
| 586 | |
| 587 | FILE STRUCTURE |
| 588 | |
| 589 | FIELD FIELD |
| 590 | NUMBER NAME |
| 591 | |
| 592 | .01 SAB (RFJ20), [0;1] |
| 593 | .02 RXAUI1 (FJ8), [0;2] |
| 594 | .03 STYPE1 (FJ50), [0;3] |
| 595 | .04 REL (FJ4), [0;4] |
| 596 | .05 RXCUI2 (FJ8), [0;5] |
| 597 | .06 RXAUI2 (FJ8), [0;6] |
| 598 | .07 STYPE2 (FJ50), [0;7] |
| 599 | .08 RELA (FJ100), [0;8] |
| 600 | .09 RUI (FJ10), [0;9] |
| 601 | .1 SRUI (FJ50), [0;10] |
| 602 | .11 RXCUI1 (FJ8), [0;11] |
| 603 | .12 SL (FJ1000), [0;12] |
| 604 | .13 DIR (FJ1), [0;13] |
| 605 | .14 RG (FJ10), [0;14] |
| 606 | .15 SUPPRESS (FJ1), [0;15] |
| 607 | .16 CVF (FJ50), [0;16] |
| 608 | |
| 609 | |
| 610 | |
| 611 | CONDENSED DATA DICTIONARY---RXNORM DOCUMENTATION FOR ABBREVIATED VALUES FILE (#176.006)UCI: F201303,ICARUS |
| 612 | |
| 613 | STORED IN: ^C0CRXN(176.006, 11/21/13 PAGE 1 |
| 614 | ------------------------------------------------------------------------------------------------------------------------------------ |
| 615 | |
| 616 | FILE SECURITY |
| 617 | DD SECURITY : @ DELETE SECURITY: @ |
| 618 | READ SECURITY : LAYGO SECURITY : @ |
| 619 | WRITE SECURITY : @ |
| 620 | CROSS REFERENCED BY: |
| 621 | DOCKEY(B) |
| 622 | |
| 623 | |
| 624 | FILE STRUCTURE |
| 625 | |
| 626 | FIELD FIELD |
| 627 | NUMBER NAME |
| 628 | |
| 629 | .01 DOCKEY (RFJ50), [0;1] |
| 630 | .02 VALUE (FJ1000), [0;2] |
| 631 | .03 TYPE (FJ50), [0;3] |
| 632 | .04 EXPL (FJ1000), [0;4] |
| 633 | |
| 634 | }}} |
| 635 | |
| 636 | A crucial part of speed in the RxNorm operations is the extensive indexing on the files. What follows are the defined new-style |
| 637 | indexes: |
| 638 | |
| 639 | {{{ |
| 640 | NEW-STYLE INDEX LIST -- FILE #176.001 11/21/13 PAGE 1 |
| 641 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 642 | |
| 643 | File #176.001 |
| 644 | |
| 645 | New-Style Indexes: |
| 646 | |
| 647 | B (#983) FIELD REGULAR IR LOOKUP & SORTING |
| 648 | Short Descr: Regular B Index |
| 649 | Set Logic: S ^C0CRXN(176.001,"B",X,DA)="" |
| 650 | Kill Logic: K ^C0CRXN(176.001,"B",X,DA) |
| 651 | Whole Kill: K ^C0CRXN(176.001,"B") |
| 652 | X(1): RXCUI (176.001,.01) (Subscr 1) (forwards) |
| 653 | |
| 654 | CODE (#1020) FIELD REGULAR IR LOOKUP & SORTING |
| 655 | Short Descr: Code Index |
| 656 | Set Logic: S ^C0CRXN(176.001,"CODE",X,DA)="" |
| 657 | Kill Logic: K ^C0CRXN(176.001,"CODE",X,DA) |
| 658 | Whole Kill: K ^C0CRXN(176.001,"CODE") |
| 659 | X(1): CODE (176.001,.14) (Subscr 1) (forwards) |
| 660 | |
| 661 | STC (#1021) RECORD MUMPS IR LOOKUP & SORTING |
| 662 | Short Descr: Source Term Type Code Index |
| 663 | Description: Use this index to do compound searches on RxNorm Concepts. |
| 664 | |
| 665 | Examples: SAB="NDDF", TTY="CDC", CODE={GCN} will give you the entry a clinical drug in First Database with GCN |
| 666 | Code {GCN}. |
| 667 | |
| 668 | SAB="RXNORM", TTY="SCD", CODE={RXNORM} will give you the entry that is the Semantic Clinical Drug for the |
| 669 | RxNorm code. |
| 670 | |
| 671 | SAB="VANDF", TTY="CD", CODE={VUID} will give you a drug that has that VUID. |
| 672 | Set Logic: S ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA)=X(4) |
| 673 | Kill Logic: K ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA) |
| 674 | Whole Kill: K ^C0CRXN(176.001,"STC") |
| 675 | X(1): SAB (176.001,.12) (Subscr 1) (forwards) |
| 676 | X(2): TTY (176.001,.13) (Subscr 2) (forwards) |
| 677 | X(3): CODE (176.001,.14) (Subscr 3) (forwards) |
| 678 | X(4): RXCUI (176.001,.01) (forwards) |
| 679 | |
| 680 | STR (#1022) FIELD REGULAR IR LOOKUP & SORTING |
| 681 | Short Descr: String Lookup Index |
| 682 | Set Logic: S ^C0CRXN(176.001,"STR",$E(X,1,30),DA)="" |
| 683 | Kill Logic: K ^C0CRXN(176.001,"STR",$E(X,1,30),DA) |
| 684 | Whole Kill: K ^C0CRXN(176.001,"STR") |
| 685 | X(1): STR (176.001,.15) (Subscr 1) (Len 30) (forwards) |
| 686 | Transform (Storage): S X=$$UP^XLFSTR(X) |
| 687 | Transform (Lookup): S X=$$UP^XLFSTR(X) |
| 688 | |
| 689 | STX (#1023) RECORD MUMPS IR LOOKUP & SORTING |
| 690 | Short Descr: Source Term Type RxCUI Code Index |
| 691 | Description: Use this index as a reverse of the STC index. |
| 692 | |
| 693 | The STC index will give you an entry if you know the source and the type and the code. This index will give you |
| 694 | the codes if you know the source, the type, but not the code, but rather the RxNorm code. |
| 695 | Set Logic: S ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA)=X(4) |
| 696 | Kill Logic: K ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA) |
| 697 | Whole Kill: K ^C0CRXN(176.001,"STX") |
| 698 | X(1): SAB (176.001,.12) (Subscr 1) (forwards) |
| 699 | X(2): TTY (176.001,.13) (Subscr 2) (forwards) |
| 700 | X(3): RXCUI (176.001,.01) (Subscr 3) (forwards) |
| 701 | X(4): CODE (176.001,.14) (forwards) |
| 702 | |
| 703 | NEW-STYLE INDEX LIST -- FILE #176.002 11/21/13 PAGE 1 |
| 704 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 705 | |
| 706 | File #176.002 |
| 707 | |
| 708 | New-Style Indexes: |
| 709 | |
| 710 | ANDFRT (#1024) RECORD REGULAR IR SORTING ONLY |
| 711 | Short Descr: RxNorm NDFRT Index |
| 712 | Set Logic: S ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA)="" |
| 713 | Set Cond: S X=X(2)="NDFRT" |
| 714 | Kill Logic: K ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA) |
| 715 | Kill Cond: S X=X(2)="NDFRT" |
| 716 | Whole Kill: K ^C0CRXN(176.002,"ANDFRT") |
| 717 | X(1): RXCUI (176.002,.09) (Subscr 1) (forwards) |
| 718 | X(2): SAB (176.002,.1) (forwards) |
| 719 | X(3): ATN (176.002,.01) (Subscr 2) (Len 30) (forwards) |
| 720 | X(4): ATV (176.002,.11) (Subscr 3) (Len 30) (forwards) |
| 721 | |
| 722 | ASAA (#1025) RECORD MUMPS IR SORTING ONLY |
| 723 | Short Descr: SAB (Source) ATN (Attribute Name) ATV (Value) Index |
| 724 | Set Logic: S ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA)=X(4) |
| 725 | Kill Logic: K ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA) |
| 726 | Whole Kill: K ^C0CRXN(176.002,"ASAA") |
| 727 | X(1): SAB (176.002,.1) (Subscr 1) (forwards) |
| 728 | X(2): ATN (176.002,.01) (Subscr 2) (Len 30) (forwards) |
| 729 | X(3): ATV (176.002,.11) (Subscr 3) (Len 30) (forwards) |
| 730 | X(4): RXCUI (176.002,.09) (forwards) |
| 731 | |
| 732 | ASAR (#1026) RECORD MUMPS IR SORTING ONLY |
| 733 | Short Descr: SAB (Source) ATN (Attribute Name) RxCUI Index |
| 734 | Set Logic: S ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA)=X(4) |
| 735 | Kill Logic: K ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA) |
| 736 | Whole Kill: K ^C0CRXN(176.002,"ASAR") |
| 737 | X(1): SAB (176.002,.1) (Subscr 1) (forwards) |
| 738 | X(2): ATN (176.002,.01) (Subscr 2) (Len 30) (forwards) |
| 739 | X(3): RXCUI (176.002,.09) (Subscr 3) (forwards) |
| 740 | X(4): ATV (176.002,.11) (forwards) |
| 741 | |
| 742 | RXCUI (#1027) FIELD REGULAR IR LOOKUP & SORTING |
| 743 | Short Descr: RXCUI Index |
| 744 | Set Logic: S ^C0CRXN(176.002,"RXCUI",X,DA)="" |
| 745 | Kill Logic: K ^C0CRXN(176.002,"RXCUI",X,DA) |
| 746 | Whole Kill: K ^C0CRXN(176.002,"RXCUI") |
| 747 | X(1): RXCUI (176.002,.09) (Subscr 1) (forwards) |
| 748 | |
| 749 | NEW-STYLE INDEX LIST -- FILE #176.003 11/21/13 PAGE 1 |
| 750 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 751 | |
| 752 | NEW-STYLE INDEX LIST -- FILE #176.004 11/21/13 PAGE 1 |
| 753 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 754 | |
| 755 | NEW-STYLE INDEX LIST -- FILE #176.005 11/21/13 PAGE 1 |
| 756 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 757 | |
| 758 | File #176.005 |
| 759 | |
| 760 | New-Style Indexes: |
| 761 | |
| 762 | B (#1028) RECORD REGULAR IR LOOKUP & SORTING |
| 763 | Short Descr: Compound Index for RXCUI1/RELA/RXCUI2 |
| 764 | Set Logic: S ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA)="" |
| 765 | Kill Logic: K ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA) |
| 766 | Whole Kill: K ^C0CRXN(176.005,"B") |
| 767 | X(1): RXCUI1 (176.005,.11) (Subscr 1) (forwards) |
| 768 | X(2): RELA (176.005,.08) (Subscr 2) (forwards) |
| 769 | X(3): RXCUI2 (176.005,.05) (Subscr 3) (forwards) |
| 770 | |
| 771 | NEW-STYLE INDEX LIST -- FILE #176.006 11/21/13 PAGE 1 |
| 772 | ----------------------------------------------------------------------------------------------------------------------------------- |
| 773 | }}} |