1 /* objmedli.h 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government have not placed any restriction on its use or reproduction. 13 * 14 * Although all reasonable efforts have been taken to ensure the accuracy 15 * and reliability of the software and data, the NLM and the U.S. 16 * Government do not and cannot warrant the performance or results that 17 * may be obtained by using this software or data. The NLM and the U.S. 18 * Government disclaim all warranties, express or implied, including 19 * warranties of performance, merchantability or fitness for any particular 20 * purpose. 21 * 22 * Please cite the author in any work or product based on this material. 23 * 24 * =========================================================================== 25 * 26 * File Name: objmedli.h 27 * 28 * Author: James Ostell 29 * 30 * Version Creation Date: 1/1/91 31 * 32 * $Revision: 6.1 $ 33 * 34 * File Description: Object manager interface for module NCBI-Medline 35 * 36 * Modifications: 37 * -------------------------------------------------------------------------- 38 * Date Name Description of modification 39 * ------- ---------- ----------------------------------------------------- 40 * 41 * 42 * $Log: objmedli.h,v $ 43 * Revision 6.1 1997/09/03 12:55:58 ostell 44 * added support for MedlineEntry.status 45 * 46 * Revision 6.0 1997/08/25 18:50:16 madden 47 * Revision changed to 6.0 48 * 49 * Revision 4.5 1997/08/20 19:17:11 madden 50 * Version 6 of ASN.1 51 * 52 * Revision 4.4 1997/06/19 18:41:37 vakatov 53 * [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization 54 * 55 * Revision 4.3 1996/05/20 19:43:50 ostell 56 * added pub_type 57 * 58 * Revision 4.2 1996/03/29 21:09:59 ostell 59 * added support for PubMedId 60 * 61 * Revision 4.1 1995/12/22 17:16:07 grisha 62 * add function MedlineSiFree(), because new Client/Server 63 * library for MedArch server needs this function 64 * 65 * Revision 4.0 1995/07/26 13:48:06 ostell 66 * force revision to 4.0 67 * 68 * Revision 3.1 1995/05/15 21:22:00 ostell 69 * added Log line 70 * 71 * 72 * 73 * ========================================================================== 74 */ 75 76 #ifndef _NCBI_Medline_ 77 #define _NCBI_Medline_ 78 79 #ifndef _ASNTOOL_ 80 #include <asn.h> 81 #endif 82 #ifndef _NCBI_General_ 83 #include <objgen.h> 84 #endif 85 #ifndef _NCBI_Biblio_ 86 #include <objbibli.h> 87 #endif 88 89 #undef NLM_EXTERN 90 #ifdef NLM_IMPORT 91 #define NLM_EXTERN NLM_IMPORT 92 #else 93 #define NLM_EXTERN extern 94 #endif 95 96 #ifdef __cplusplus 97 extern "C" { 98 #endif 99 100 /***************************************************************************** 101 * 102 * loader 103 * 104 *****************************************************************************/ 105 NLM_EXTERN Boolean LIBCALL MedlineAsnLoad PROTO((void)); 106 107 /***************************************************************************** 108 * 109 * Medline-mesh 110 * 111 *****************************************************************************/ 112 typedef struct mesh { 113 Boolean mp; /* main point */ 114 CharPtr term; 115 ValNodePtr qual; 116 struct mesh PNTR next; 117 } MedlineMesh, PNTR MedlineMeshPtr; 118 119 NLM_EXTERN MedlineMeshPtr LIBCALL MedlineMeshNew PROTO((void)); 120 NLM_EXTERN MedlineMeshPtr LIBCALL MedlineMeshFree PROTO((MedlineMeshPtr mmp)); 121 NLM_EXTERN MedlineMeshPtr LIBCALL MedlineMeshAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 122 NLM_EXTERN Boolean LIBCALL MedlineMeshAsnWrite PROTO((MedlineMeshPtr mmp, AsnIoPtr aip, AsnTypePtr atp)); 123 124 /***************************************************************************** 125 * 126 * Medline-rn 127 * 128 *****************************************************************************/ 129 typedef struct rn { 130 Uint1 type; 131 CharPtr cit, 132 name; 133 struct rn PNTR next; 134 } MedlineRn, PNTR MedlineRnPtr; 135 136 NLM_EXTERN MedlineRnPtr LIBCALL MedlineRnNew PROTO((void)); 137 NLM_EXTERN MedlineRnPtr LIBCALL MedlineRnFree PROTO((MedlineRnPtr mrp)); 138 NLM_EXTERN MedlineRnPtr LIBCALL MedlineRnAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 139 NLM_EXTERN Boolean LIBCALL MedlineRnAsnWrite PROTO((MedlineRnPtr mrp, AsnIoPtr aip, AsnTypePtr atp)); 140 141 /***************************************************************************** 142 * 143 * Medline-si 144 * ValNode used for structure 145 * 146 *****************************************************************************/ 147 NLM_EXTERN ValNodePtr LIBCALL MedlineSiFree PROTO((ValNodePtr msp)); 148 NLM_EXTERN ValNodePtr LIBCALL MedlineSiAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 149 NLM_EXTERN Boolean LIBCALL MedlineSiAsnWrite PROTO((ValNodePtr msp, AsnIoPtr aip, AsnTypePtr atp)); 150 151 /***************************************************************************** 152 * 153 * DocRef 154 * 155 *****************************************************************************/ 156 typedef struct df { 157 Uint1 type; 158 Int4 uid; 159 struct df PNTR next; 160 } DocRef, PNTR DocRefPtr; 161 162 NLM_EXTERN DocRefPtr LIBCALL DocRefNew PROTO((void)); 163 NLM_EXTERN DocRefPtr LIBCALL DocRefFree PROTO((DocRefPtr drp)); 164 NLM_EXTERN DocRefPtr LIBCALL DocRefAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 165 NLM_EXTERN Boolean LIBCALL DocRefAsnWrite PROTO((DocRefPtr drp, AsnIoPtr aip, AsnTypePtr atp)); 166 167 168 /***************************************************************************** 169 * 170 * Medline-field 171 * 172 *****************************************************************************/ 173 typedef struct mlf { 174 Uint1 type; 175 CharPtr str; 176 DocRefPtr ids; 177 struct mlf PNTR next; 178 } MedlineField, PNTR MedlineFieldPtr; 179 180 NLM_EXTERN MedlineFieldPtr LIBCALL MedlineFieldNew PROTO((void)); 181 NLM_EXTERN MedlineFieldPtr LIBCALL MedlineFieldFree PROTO((MedlineFieldPtr mfp)); 182 NLM_EXTERN MedlineFieldPtr LIBCALL MedlineFieldAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 183 NLM_EXTERN Boolean LIBCALL MedlineFieldAsnWrite PROTO((MedlineFieldPtr mfp, AsnIoPtr aip, AsnTypePtr atp)); 184 185 186 /***************************************************************************** 187 * 188 * Medline-entry 189 * 190 *****************************************************************************/ 191 typedef struct medline { 192 Int4 uid; 193 DatePtr em; 194 CitArtPtr cit; 195 CharPtr abstract; 196 MedlineMeshPtr mesh; 197 MedlineRnPtr substance; 198 ValNodePtr xref; 199 ValNodePtr idnum; 200 ValNodePtr gene; 201 Int4 pmid; /* PubMedId */ 202 ValNodePtr pub_type; 203 MedlineFieldPtr mlfield; 204 Uint1 status; /* 1=supplied by publisher, 2=premedline, 3 or 0 = medline*/ 205 } MedlineEntry, PNTR MedlineEntryPtr; 206 207 NLM_EXTERN MedlineEntryPtr LIBCALL MedlineEntryNew PROTO((void)); 208 NLM_EXTERN MedlineEntryPtr LIBCALL MedlineEntryFree PROTO((MedlineEntryPtr mep)); 209 NLM_EXTERN MedlineEntryPtr LIBCALL MedlineEntryAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); 210 NLM_EXTERN Boolean LIBCALL MedlineEntryAsnWrite PROTO((MedlineEntryPtr mep, AsnIoPtr aip, AsnTypePtr atp)); 211 212 #ifdef __cplusplus 213 } 214 #endif 215 216 #undef NLM_EXTERN 217 #ifdef NLM_EXPORT 218 #define NLM_EXTERN NLM_EXPORT 219 #else 220 #define NLM_EXTERN 221 #endif 222 223 #endif 224